Ember.Select可以呈现内容的承诺

时间:2014-01-21 13:37:31

标签: ember.js ember-data ember-select

我正在尝试渲染项目列表并为每个项目提供选择输入。 select的选项来自商店,因此传递给Ember.Select时是一个承诺。这可能吗?如果内容发生变化,视图看起来就不会重新呈现,所以看起来我可能不得不这样做。

我的模板(缩写)

{{#each fruitBins}}
    <tr>
      <td>{{id}}</td>
      <td> {{view Ember.Select 
                          content=fruitTypes
                          optionLabelPath="content.name"
                          optionValuePath="content.id"
                          prompt="Select a Fruit Type"

                          }}
      </td>
   </tr>
{{/each}}

fruit_bins_controller.js:

...
fruitTypes: function () {
  return this.store.find('fruitType');
}.property(),

呈现选择时唯一出现的是提示。

Ember:1.3.1,数据:1.0.0.beta4

1 个答案:

答案 0 :(得分:2)

原来我理解我的问题是错误的。

根据@edpaez的建议制作更新,我认为我的代码与约定一致。我在我的路线中添加了以下内容:

model: function () {
  return Em.RSVP.hash({ 
    content: this.modelFor('<the parent element>'), 
    fruitTypes: this.store.find('fruitType')
  });
},
setupController: function(controller, model) {
  controller.setProperties(model);
}

我仍然遇到同样的问题但发现(忘了)使用#each改变了我的上下文。

解决方案是包装#each

{{#with this as context}}
  {{#each fruitBins}}
  <tr>
    <td>{{id}}</td>
    <td> {{view Ember.Select 
                      content=context.fruitTypes
                      optionLabelPath="content.name"
                      optionValuePath="content.id"
                      prompt="Select a Fruit Type"

                      }}
    </td>
   </tr>
  {{/each}}
{{/with}}