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。