Ember select 和查询参数。变得不确定
Ember select and query parameters. Getting undefined
我正在尝试 select 一个选项,一旦它被 selected,获取对象的值并用该值更改 url。
现在,我在 url:
中变得不确定
http://localhost:4200/product?company=undefined
控制器:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['company'],
company: null,
.......
actions: {
selectCompany: function(value) {
this.set('company', value);
}
}
});
模板:
<select {{ action 'selectCompany' company.id on='change' }}>
{{#each sortedTraitsAsc as |company|}}
<option value={{company.id}}> {{company.value}}</option>
{{/each}}
</select>
型号
import DS from 'ember-data';
export default DS.Model.extend({
value: DS.attr('string')
});
在您的模板中,对于选项标签,您还需要提供选择的值,让控制器知道选择的是什么。
这是我根据您正在尝试执行的操作的假设重新创建的工作示例。
在继续之前...请确保通过 运行 以下 Ember CLI 命令安装 Ember Truth Helpers - https://www.npmjs.com/package/ember-truth-helpers:
ember install ember-truth-helpers
您的路线(在这种情况下提供模型)将如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return [{'name': 'a', 'valuation': 100},
{'name': 'b', 'valuation': 200},
{'name': 'c', 'valuation': 150},
{'name': 'd', 'valuation': 250}
];
}
});
你的控制器看起来像这样:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['company'],
company: null,
actions: {
selectCompany: function(company){
alert(company);
this.set('company', company);
}
}});
您的模板如下所示:
<select onchange={{action "selectCompany" value="target.value"}}>
{{#each model as |companyChoice|}}
<option value={{companyChoice.name}} selected={{eq company companyChoice.name}}>{{companyChoice.name}}</option>
{{/each}}
</select>
希望对您有所帮助。
我正在尝试 select 一个选项,一旦它被 selected,获取对象的值并用该值更改 url。
现在,我在 url:
中变得不确定http://localhost:4200/product?company=undefined
控制器:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['company'],
company: null,
.......
actions: {
selectCompany: function(value) {
this.set('company', value);
}
}
});
模板:
<select {{ action 'selectCompany' company.id on='change' }}>
{{#each sortedTraitsAsc as |company|}}
<option value={{company.id}}> {{company.value}}</option>
{{/each}}
</select>
型号
import DS from 'ember-data';
export default DS.Model.extend({
value: DS.attr('string')
});
在您的模板中,对于选项标签,您还需要提供选择的值,让控制器知道选择的是什么。
这是我根据您正在尝试执行的操作的假设重新创建的工作示例。
在继续之前...请确保通过 运行 以下 Ember CLI 命令安装 Ember Truth Helpers - https://www.npmjs.com/package/ember-truth-helpers:
ember install ember-truth-helpers
您的路线(在这种情况下提供模型)将如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return [{'name': 'a', 'valuation': 100},
{'name': 'b', 'valuation': 200},
{'name': 'c', 'valuation': 150},
{'name': 'd', 'valuation': 250}
];
}
});
你的控制器看起来像这样:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['company'],
company: null,
actions: {
selectCompany: function(company){
alert(company);
this.set('company', company);
}
}});
您的模板如下所示:
<select onchange={{action "selectCompany" value="target.value"}}>
{{#each model as |companyChoice|}}
<option value={{companyChoice.name}} selected={{eq company companyChoice.name}}>{{companyChoice.name}}</option>
{{/each}}
</select>
希望对您有所帮助。