【问题标题】:Ember.Select not setting default value correctlyEmber.Select 未正确设置默认值
【发布时间】:2012-04-04 15:40:36
【问题描述】:

我已经阅读了所有测试两次,文档阅读了三遍,但我仍然不确定我是否了解如何使用 Ember。选择正确的方式。我有一个我认为非常简单的案例:

我在模型对象 (goal_type) 中有一个字符串值,我想将它双向绑定到一个选择,并让该选择默认为目标类型字段的起始值。几个问题:

  1. 我无法让选择接受模型的初始goal_type。
  2. 所有这些似乎都太复杂了 - 必须有比设置观察者来修改原始控制器的状态更简单的方法。

帮助 - 想弄清楚这一点我快疯了。

Azul.goalController = Ember.Object.create({ 加载目标:函数(数据){ this.set('content', Azul.store.loadAll(Azul.Goal, data)); }, 新目标:函数(){ 目标 = Azul.store.createRecord(Azul.Goal, {goal_type: "type2"}); this.set('内容', 目标); Azul.selectedGoalTypeController.selectGoalType(goal.get('goal_type')); } }); Azul.selectedGoalTypeController = Ember.Object.create({ 选定目标类型:空, selectedGoalTypeChanged:函数(){ Azul.goalController.content.set('goal_type', this.selectedGoalType.value); }.observes('selectedGoalType'), 选择目标类型:函数(目标类型){ Azul.goalTypesController.content.forEach(function(item, index, self) { if (goal_type == item.value) { self.set('selectedGoalType', item); } }); } }); Azul.goalTypesController = Ember.ArrayController.create({ 内容: [ {值:'type1',标签:'Type 1'}, {值:'type2',标签:'Type 2'} ] });

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您必须将值设置为绑定到选择选项的对象,而不是值。 这里:

    Azul.selectedGoalTypeController.selectGoalType(goal.get('goal_type'));
    

    只要做:

    Azul.selectedGoalTypeController.set('selectedGoalType', goal);
    

    顺便说一句,你的问题似乎有点混乱。对不起,如果我误解了你。 我做了一个如何使用 Select 的简单示例,这里是小提琴:http://jsfiddle.net/Qpkz5/300/

    【讨论】:

    • 我了解您的示例,但我正在寻找的是将模型上的字段绑定到选择的值并具有模型集上的字段值的推荐方法是什么选择的默认值。我不太确定我是否理解 ember-y 的方法。
    猜你喜欢
    • 2011-07-25
    • 2013-02-01
    • 2017-06-28
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多