Модель canjs не заполняет шаблон усов

Я очень новичок в CanJs, только начал учиться, я столкнулся с проблемой ниже, не в состоянии ее отладить.

У меня есть модель, как показано ниже:

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

GET /resources/localized ---> выбирает доступные локализованные языки.

И я определил компонент, как показано ниже

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>

Но проблема в том, что локали не заполняются, я видел сетевой вызов для /resources/localized, любые указатели здесь действительно могут помочь понять это.


person Abhi    schedule 06.09.2014    source источник
comment
В случае вашей функции init() регистрируемая ссылка должна быть this.scope.locales, а не просто locales   -  person air_hadoken    schedule 06.09.2014


Ответы (1)


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

person air_hadoken    schedule 06.09.2014