0

我正在为yeoman生成一个angularJS项目。我打电话跟一个参数发电机和我把它从我的主发电机的脚本(index.js)做:在生成的模板中使用yeoman-generator变量

this.argument('name', { type: String }); 

我可以通过使用相同的index.js这里面的参数:

this.options.name 

问题:我想在我的模板中使用相同的this.options.name,以便我可以将其值赋给一个变量。我该怎么做?

回答

0

定义一个角度常数并将其设置为该值。然后在与此视图关联的控制器内,只需注入此常量。

myApp.constant('YEOMAN_NAME', MYVALUE); 

然后,只需注入你常关联到您的视图控制器内部,这个常量关联到一个范围变量,使用它你的模板中。

现在“最难”的部分是如何在角度环境中获得这个值。

我不知道你的index.js是什么,我想这只是与你的页面相关的主脚本。 在这种情况下,如果你的主脚本像

this.myVariable = 'myValue'; 

你实际上是在创建一个新的属性窗口对象里面做(如果你不这样做,里面的一些功能)

所以你可以做的是这个变量关联到一个窗口参数,并尝试这样你就不会在风险覆盖别的窗口,就像是最具体地:

window.myYeomanName = this.options.name; 

然后你就可以在里面定义常量angul AR无处不只是在做:

myApp.constant('YEOMAN_NAME', window.myYeomanName); 
+0

非常感谢,我会尝试一下,让它知道它是否有效。如果我想从Node.js访问一个变量呢? – chopeds

+0

你的意思是说你有你的node.js应用服务器端和你的angularjs应用客户端? – quirimmo

+0

是的,我做@quirimmo。我想从angularjs和nodejs边访问Yeoman的生成器变量 – chopeds

0

要访问的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。