我正在为yeoman生成一个angularJS项目。我打电话跟一个参数发电机和我把它从我的主发电机的脚本(index.js)做:在生成的模板中使用yeoman-generator变量
this.argument('name', { type: String });
我可以通过使用相同的index.js这里面的参数:
this.options.name
问题:我想在我的模板中使用相同的this.options.name,以便我可以将其值赋给一个变量。我该怎么做?
我正在为yeoman生成一个angularJS项目。我打电话跟一个参数发电机和我把它从我的主发电机的脚本(index.js)做:在生成的模板中使用yeoman-generator变量
this.argument('name', { type: String });
我可以通过使用相同的index.js这里面的参数:
this.options.name
问题:我想在我的模板中使用相同的this.options.name,以便我可以将其值赋给一个变量。我该怎么做?
定义一个角度常数并将其设置为该值。然后在与此视图关联的控制器内,只需注入此常量。
myApp.constant('YEOMAN_NAME', MYVALUE);
然后,只需注入你常关联到您的视图控制器内部,这个常量关联到一个范围变量,使用它你的模板中。
现在“最难”的部分是如何在角度环境中获得这个值。
我不知道你的index.js是什么,我想这只是与你的页面相关的主脚本。 在这种情况下,如果你的主脚本像
this.myVariable = 'myValue';
你实际上是在创建一个新的属性窗口对象里面做(如果你不这样做,里面的一些功能)
所以你可以做的是这个变量关联到一个窗口参数,并尝试这样你就不会在风险覆盖别的窗口,就像是最具体地:
window.myYeomanName = this.options.name;
然后你就可以在里面定义常量angul AR无处不只是在做:
myApp.constant('YEOMAN_NAME', window.myYeomanName);
要访问的Node.js一个自耕农变量,我做了以下内容:
我改名从帆文件connections.js,重新命名为_connections.js并把它放在与yeoman的生成器中的“模板”文件夹内的sails文件夹相同。如下所示:
> yeomanGeneratorFolder
> |-app
> |-index.js
> |-templates
> |-sails
> |-_connections.js
> |- ....
关于Generator的index.js。我创建了一个函数来在js文件上写入我需要的数据。我送一个JSON对象,其中包含我需要在新文件中的数据copyTpl()函数中:
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。
非常感谢,我会尝试一下,让它知道它是否有效。如果我想从Node.js访问一个变量呢? – chopeds
你的意思是说你有你的node.js应用服务器端和你的angularjs应用客户端? – quirimmo
是的,我做@quirimmo。我想从angularjs和nodejs边访问Yeoman的生成器变量 – chopeds