首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >余烬选择的麻烦

余烬选择的麻烦
EN

Stack Overflow用户
提问于 2015-04-16 17:02:20
回答 1查看 99关注 0票数 0

我正在尝试使用HTML元素获得一个简单的belongsTo关系。

我的应用程序记录学生。每个学生都被分配到一个类别。

我有一个分类模型:

代码语言:javascript
复制
import DS from "ember-data";

export default DS.Model.extend({
  code: DS.attr('string'),
  description: DS.attr('string')
});

还有一个学生模型--还有很多其他的东西--属于一个范畴。

代码语言:javascript
复制
import DS from "ember-data";

export default DS.Model.extend({
  //...
  category: DS.belongsTo('category', {async: true}),
  //...
});

我希望允许用户在模板中选择学生类别,因此我的路由将加载到一个类别对象列表中:

代码语言:javascript
复制
import Ember from "ember";

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('student', params.student_id);
  },
  setupController: function(controller, model) {
    this._super(controller, model);
    //...
    controller.set('categories', this.store.find('category'));
    //...
  }
});

我的模板包括以下内容(编辑:我使用"content.id"作为值路径,而不是最初所说的"content",但它似乎对问题没有影响):

代码语言:javascript
复制
<label>Category:&nbsp;</label>
{{view "select" 
   content=categories 
   optionValuePath="content.id" 
   optionLabelPath="content.description" 
   selection=category}}

,我的期望是,这将允许我从列表中选择一个项目,并且它将相应地更新我的模型类别。

实际发生的是列表工作,但如果我更改选择,则select元素变为空白。

生成的HTML如下所示:

代码语言:javascript
复制
<select id="ember955" class="ember-view ember-select">
  <option id="ember1199" class="ember-view" value="16">Category A</option>
  <option id="ember1202" class="ember-view" value="17">Category B</option>
  <option id="ember1205" class="ember-view" value="18">Category C</option>
  <option id="ember1208" class="ember-view" value="19">Category D</option>
  <option id="ember1211" class="ember-view" value="20">Category E</option>
  <option id="ember1214" class="ember-view" value="21">Category F</option>
  <option id="ember1217" class="ember-view" value="22">Category G</option>
</select>

我做对了吗?我错过了什么模式吗?

编辑:

我已经在吉斯宾中尽可能地复制了这一点,但是问题并没有发生。非常奇怪的是,select元素是正确填充的,它甚至似乎正确地更新了类别。唯一的问题是,如果我更改原来的选择,复选框将变为空白。

EN

回答 1

Stack Overflow用户

发布于 2015-04-16 19:45:51

我希望看到一个惟一的属性,如id,引用为optionValuePath而不是整个对象。

所以不是optionValuePath="content",而是optionValuePath="content.id"

代码语言:javascript
复制
<label>Category:&nbsp;</label>
{{view "select" 
   content=categories 
   optionValuePath="content.id" 
   optionLabelPath="content.description" 
   selection=category}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29681466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档