2014-09-06 103 views
0

我剛剛開始學習CanJs,我很新,我感到以下問題不能調試它。canjs模型不填充鬍子模板

我有模型如下:

Localized = can.Model({ 
     findOne : 'GET /resources/localized' 
    }, { 
}); 

GET /資源/本地化--->獲取可用的本地化語言。

而且我已經定義了組件如下

can.Component({ 
    tag : 'preferences', 
    template : initView, 
    init: function() { 
     console.log(locales); 
    }, 
    scope : { 
     locales: new LocalizedModel.findOne({}) 
    } 
}); 

initView具有如下小鬍子模板:

<div class="form-group"> 
    <label>{{dateLayout}}</label> 
     <select class="form-control" id="lang" name="lang" can-change="save"> 
      {{#list locales.languageOptions}} 
       <option value="{{name}}">{{name}}</option> 
      {{/list}} 
     </select> 
</div> 

但問題是語言環境沒有得到填充,我可以看到網絡呼籲/資源/本地化,這裏的任何指針都可以幫助理解這一點。

+0

對於你的init()函數,被記錄的引用應該是'''this.scope.locales''',而不僅僅是'''locales''' – 2014-09-06 04:12:01

回答

0

小心使用正確的命名,特別是如果您正在閱讀CanJS文檔中的EJS和Mustache兩個版本。遍歷列表的幫助器是can.Mustache和can.Stache中的{{#each listref}}...{{/each}},其中can.EJS中的代碼是<% list(listref, function(item) { %>...<% }) %>。使用{{#list ...}}可能不會產生任何東西。