我正在爲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