2012-04-04 13 views
0

Я читал все тесты дважды, документацию три раза, и я все еще не уверен, что понимаю, как использовать Ember. Выберите правильный путь. У меня есть то, что я считаю довольно простым:Ember.Select не правильно установить значение по умолчанию

У меня есть строковое значение в объекте модели (goal_type), который я хочу двунаправленно привязать к элементу select и иметь, который выбирает значение по умолчанию для начального значения поля goal_type. Несколько вопросов:

  1. Я не могу получить выбор, чтобы принять начальный тип цели.
  2. Все это кажется слишком сложным - должен быть более простой способ сделать это, чем настроить наблюдателя для изменения состояния исходного контроллера.

Помощь - Я схожу с ума, пытаясь понять это.

 
Azul.goalController = Ember.Object.create({ 

    loadGoal: function(data) { 
     this.set('content', Azul.store.loadAll(Azul.Goal, data)); 
    }, 

    newGoal: function() { 
     goal = Azul.store.createRecord(Azul.Goal, {goal_type: "type2"}); 
     this.set('content', goal); 
     Azul.selectedGoalTypeController.selectGoalType(goal.get('goal_type')); 
    } 

    }); 

    Azul.selectedGoalTypeController = Ember.Object.create({ 
     selectedGoalType: null, 

     selectedGoalTypeChanged: function() { 
     Azul.goalController.content.set('goal_type', this.selectedGoalType.value); 
     }.observes('selectedGoalType'), 

     selectGoalType: function(goal_type) { 
     Azul.goalTypesController.content.forEach(function(item, index, self) { 
      if (goal_type == item.value) { 
       self.set('selectedGoalType', item); 
      } 
     }); 
     } 
    }); 

    Azul.goalTypesController = Ember.ArrayController.create({ 
     content: [ 
      {value: 'type1', label: 'Type 1'}, 
      {value: 'type2', label: 'Type 2'} 
     ] 
    }); 

ответ

1

Вы должны установить значение для объекта, привязанного к опции выбора, а не к значению. здесь:

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

Вобще:

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

Кстати, ваш вопрос, казалось, немного смущает. Извините, если я вас неправильно понял. Я сделал простой пример того, как использовать Select, вот сценарий: http://jsfiddle.net/Qpkz5/300/

+0

Я понимаю ваш образец, но то, что я ищу, является рекомендуемым способом привязки поля к модели к значению выберите и укажите значение поля в модели, заданное по умолчанию для выбора. Я не совсем уверен, что понимаю, как это сделать. – outside2344

+0

Я обновил скрипку, проверьте, помогает ли это еще немного ... – Luan

Смежные вопросы