2016-08-05 12 views
2

Meine Vorlage:ember-cli Wie setze ich den Standardwert aus dem Formular?

<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 hat einen der Werte: ['php', 'javascript', ...]

Mein Controller:

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

Wie kann ich den Standardwert von select auf php?

Antwort

0

Setzen Sie true auf das Attribut selected der ausgewählten Option. Etwas wie folgt aus:

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

eq helper sind hier zu finden.

0

Ich denke, lang Eigenschaft in der Steuerung und in jedem Block Helfer zu anderem Kontext bezieht, ist die problem.either Sie benötigen lang Eigenschaft in der Steuerung zu einem anderen Eigenschaftsnamen

application.js ändern -> Route

import Ember from 'ember'; 

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

application.js -> Controller

import Ember from 'ember'; 

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

application.hbs -> Template-Datei

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

Arbeitsprobe ember-twiddle

Verwandte Themen