ember-cli如何从表单选择中设置默认值?

时间:2016-08-05 19:16:52

标签: javascript ember.js

我的模板:

<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);
}

如何设置select到php的默认值?

2 个答案:

答案 0 :(得分:0)

true设置为所选选项的selected属性。像这样:

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

eq helper可以在这里找到。

答案 1 :(得分:0)

我猜,控制器和每个块帮助器中的UserForm属性引用不同的上下文是问题。要么将控制器中的lang属性更改为其他属性名称

  

application.js - &gt;路线

lang
  

application.js - &gt;控制器

import Ember from 'ember';

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

application.hbs - &gt;模板文件

import Ember from 'ember';

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

工作样本ember-twiddle