2013-08-26 38 views
1

我正在寫一個版本的發電機角度與額外的選項來支持的LiveScript來源,並與進步少,字體真棒等方面的工作是引導在https://github.com/gmp26/generator-angular-ls如何將yeoman提示選項傳遞給模板文件?

我在一個簡單的心願掛了。我希望最初的'Halo'Halo安裝列表能夠反映爲解答yeoman問題而安裝的選項,而不是一個常見的公分母列表。作爲第一次嘗試 - 我試着在templates/*/spec/controller。(ls | js | coffee)中使用lodash模板來調整在這些文件中定義的$ scope.awesomeThings列表。這會失敗,因爲我的可選標誌以類似於generator-angular的this.bootstrap和this.compassBootstrap的方式由prompt(this.bootstrap,this.lessBootstrap,this.fontAwesome)定義,在模板爲'this'的上下文中不可用調用。 'this'上下文都是Generators,但我相信提示'this'的上下文是generator angular:app,而模板在angular:controller中調用。

那麼,任何想法如何溝通一個標誌從app/index.js提示階段到模板階段?

我覺得應該有一種方法來做到這一點,它不涉及在生成的應用文件夾中寫入和讀取文件。

也許這是hookFor調用的目的是什麼?

+0

看起來有可能使用hookFor。如果將這些選項保存在app/index.js的'this.options'中,則可以通過hookFor調用傳遞給angular:controller生成器。我懷疑這是答案。 – grumplet

回答

0

我的問題與yeoman-generator issue #312基本相同,通過使用文件.yo-rc.json添加參數storage API解決了此問題。

基於文件的商店是必要的,因爲yeoman子生成器可以獨立於'yo'以及通過主生成器調用。 hookFor解決方案只能在主發生器上工作。

0

是的 - 看起來這些選項可以通過已經存在於generator-angular中的hookFor調用傳遞給其他生成器。請參閱solution in this commit

相關問題