2014-09-06 3 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''' –

ответ

0

Соблюдайте правильное обозначение, особенно если вы читали на EJS и Mustache здании из документации CanJS. Помощник, который выполняет итерации по списку, - {{#each listref}}...{{/each}} в can.Mustache и can.Stache, где в can.EJS это <% list(listref, function(item) { %>...<% }) %>. Использование {{#list ...}}, скорее всего, ничего не даст.