我正在与自耕农生成一个angularJS项目。我用一个参数调用生成器,然后通过执行以下操作从主生成器的脚本(index.js)中获取它:
this.argument('name', { type: String });
我可以使用:
在同一个index.js中使用此参数this.options.name
问题:我想在我的模板中使用同样的this.options.name,以便我可以将其值赋给变量。我该怎么办?
答案 0 :(得分:2)
要从Node.js访问yeoman变量,我执行了以下操作:
我从sails重命名了文件connections.js,将其重命名为_connections.js,并将其放置在与yeoman生成器的“templates”文件夹中的sails文件夹相同的级别。像这样离开:
> yeomanGeneratorFolder
> |-app
> |-index.js
> |-templates
> |-sails
> |-_connections.js
> |- ....
在Generator的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的密钥。
答案 1 :(得分:0)
定义角度常量并将其设置为此值。然后在与该视图关联的控制器内部,只需注入此常量。
myApp.constant('YEOMAN_NAME', MYVALUE);
然后将常量注入与视图关联的控制器内,将此常量与范围变量关联,并在模板中使用它。
现在&#34;最难&#34;部分是如何在角度环境中获得此值。
我不知道你的index.js是什么,我想这只是与你的页面相关的主要脚本。 在这种情况下,如果您在主脚本内部执行类似
的操作this.myVariable = 'myValue';
您实际上正在为窗口对象创建一个新属性(如果您没有在某个函数中执行此操作)
所以你可以做的是将这个变量与一个窗口参数相关联,并尝试尽可能最具体,这样你就没有风险覆盖窗口中的其他内容,如:
window.myYeomanName = this.options.name;
然后你可以在任何地方定义你的常数内角:
myApp.constant('YEOMAN_NAME', window.myYeomanName);