2016-08-05 3 views
2

Мой шаблон:ember-cli Как установить значение по умолчанию из формы?

<select name="lang" id="lang" onchange={{action "selectOption" value="target.value"}}> 
    <option value="">--Choose--</option> 
    {{#each model as |lang|}} 
    <option value="{{lang.url}}">{{lang.title}}</option> 
    {{/each}} 
</select> 

lang.url имеет одно из значений: ['php', 'javascript', ...]

Мой контроллер:

lang: 'php', //this is not working, I am thinking of something like lang.url or lang.get('url') but looks like it is still not right .. 
actions: { 
selectOption: function(option) { 
    this.set("lang", option); 
} 

Как я могу установить значение по умолчанию выбрать для PHP?

ответ

0

Установить true в атрибут выбранного атрибута selected. Что-то вроде этого:

<option value="{{lang.url}}" selected={{eq lang.url lang}}>{{lang.title}}</option> 

eq helper можно найти здесь.

0

Я думаю, lang свойство в контроллере и в каждом блоке помощник относится к различным контексте является problem.either вам необходимо изменить языки свойство контроллера в другое имя свойства

application.js -> маршрут

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(){ 
    return [{'url':'phpurl','title':'phptitle'},{'url':'javascripturl','title':'javascripttitle'}]; 
    } 
}); 

application.js -> контроллер

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    lang: 'phpurl', 
    actions: { 
     selectOption: function(option) { 
     console.log(option); 
     this.set("lang", option); 
     } 
    } 
}); 

application.hbs -> шаблон файла

<select name="lang" id="lang" onchange={{action "selectOption" value="target.value"}}> 
    <option value="">--Choose--</option> 
    {{#each model as |item|}} 
    <option value="{{item.url}}" selected={{eq item.url lang}}>{{item.title}}</option> 
    {{/each}} 
</select> 

{{outlet}} 

Работа образец ember-twiddle

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