在生成的模板中使用 yeoman-generator 变量
Using yeoman-generator variable inside generated template
我正在使用 yeoman 生成一个 angularJS 项目。我用参数调用生成器,然后通过执行以下操作从主生成器的脚本 (index.js) 中获取它:
this.argument('name', { type: String });
我可以在同一个 index.js 中使用此参数,方法是:
this.options.name
问题:我想在我的模板中使用相同的 this.options.name,这样我就可以将它的值赋给一个变量。我该怎么做?
定义一个angular常量并将其设置为此值。然后在与此视图关联的控制器内,只需注入此常量。
myApp.constant('YEOMAN_NAME', MYVALUE);
然后只需将您的常量注入与您的视图关联的控制器中,将此常量关联到范围变量并在您的模板中使用它。
现在 "hardest" 部分是如何在 angular 环境中获取此值。
我不知道你的 index.js 是什么,我想那只是与你的页面关联的主要脚本。
在这种情况下,如果您在主脚本中执行类似
this.myVariable = 'myValue';
您实际上是在为 window 对象创建一个新属性(如果您没有在某个函数中这样做)
所以你可以做的是将这个变量关联到一个 window 参数,并尽量做到最具体,这样你就不会冒着覆盖 window 中其他内容的风险,喜欢:
window.myYeomanName = this.options.name;
然后你可以在 angular 的任何地方定义你的常数:
myApp.constant('YEOMAN_NAME', window.myYeomanName);
要从 Node.js 访问 yeoman 变量,我执行了以下操作:
我将文件 connections.js 从 sails 重命名,将其重命名为 _connections.js 并将其放置在与 yeoman 生成器的文件夹 "templates" 内的 sails 文件夹相同的级别。像这样离开:
> yeomanGeneratorFolder
> |-app
> |-index.js
> |-templates
> |-sails
> |-_connections.js
> |- ....
在发电机的 index.js 上。我创建了一个函数来在 js 文件上写入我需要的数据。我在 copyTpl() 函数中发送了一个 JSON 对象,其中包含我在新文件中需要的数据:
connections() {
this.fs.copyTpl(this.templatePath('_connections.js'), this.destinationPath('./config/connections.js'),
{
dbName: this.item.dbName
});
}
在 _connections.js 我写道:
database: '<%=dbName%>' //optional
注意 dbName 是我在 index.js.
的 copyTpl() 函数中发送给 JSON 的密钥
我正在使用 yeoman 生成一个 angularJS 项目。我用参数调用生成器,然后通过执行以下操作从主生成器的脚本 (index.js) 中获取它:
this.argument('name', { type: String });
我可以在同一个 index.js 中使用此参数,方法是:
this.options.name
问题:我想在我的模板中使用相同的 this.options.name,这样我就可以将它的值赋给一个变量。我该怎么做?
定义一个angular常量并将其设置为此值。然后在与此视图关联的控制器内,只需注入此常量。
myApp.constant('YEOMAN_NAME', MYVALUE);
然后只需将您的常量注入与您的视图关联的控制器中,将此常量关联到范围变量并在您的模板中使用它。
现在 "hardest" 部分是如何在 angular 环境中获取此值。
我不知道你的 index.js 是什么,我想那只是与你的页面关联的主要脚本。 在这种情况下,如果您在主脚本中执行类似
this.myVariable = 'myValue';
您实际上是在为 window 对象创建一个新属性(如果您没有在某个函数中这样做)
所以你可以做的是将这个变量关联到一个 window 参数,并尽量做到最具体,这样你就不会冒着覆盖 window 中其他内容的风险,喜欢:
window.myYeomanName = this.options.name;
然后你可以在 angular 的任何地方定义你的常数:
myApp.constant('YEOMAN_NAME', window.myYeomanName);
要从 Node.js 访问 yeoman 变量,我执行了以下操作:
我将文件 connections.js 从 sails 重命名,将其重命名为 _connections.js 并将其放置在与 yeoman 生成器的文件夹 "templates" 内的 sails 文件夹相同的级别。像这样离开:
> yeomanGeneratorFolder
> |-app
> |-index.js
> |-templates
> |-sails
> |-_connections.js
> |- ....
在发电机的 index.js 上。我创建了一个函数来在 js 文件上写入我需要的数据。我在 copyTpl() 函数中发送了一个 JSON 对象,其中包含我在新文件中需要的数据:
connections() {
this.fs.copyTpl(this.templatePath('_connections.js'), this.destinationPath('./config/connections.js'),
{
dbName: this.item.dbName
});
}
在 _connections.js 我写道:
database: '<%=dbName%>' //optional
注意 dbName 是我在 index.js.
的 copyTpl() 函数中发送给 JSON 的密钥