演示:http://jsbin.com/zexopa/1/edit?html,js,output
我在我的应用程序中使用查询参数。 queryParameters
为'name'
和'category'
。
'name'
参数在select中使用,'category'
使用输入,但如果我将其设置为null,则select 'name'
有问题。
如果我更改'name'
,则网址中的'name'
始终未定义。
路线:
App.IndexRoute = Ember.Route.extend({
beforeModel: function() {
this.controllerFor('index').set('products', [1,2,3]);
},
model: function() {
return [{'is_active':false, 'name':'One'}, {'is_active':false, 'name':'Two'}, {'is_active':false, 'name':'Three'}, {'is_active':false, 'name':'Four'},{'is_active':false, 'name':'Five'}];
},
actions: {
queryParamsDidChange: function() {
this.refresh();
}
}
});
控制器:
App.IndexController = Ember.Controller.extend({
queryParams: ['name', 'category'],
name: null,
category: null
});
模板:
<script type="text/x-handlebars">
<h2>Welcome to Ember.js</h2>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
{{view "select" content=products value=name prompt="all"}}
{{input type="text" value=category class="form-control"}}
<ul>
{{#each model as |item|}}
<li>{{item.name}}</li>
{{/each}}
</ul>
</script>
您能帮忙检查一下我的申请会发生什么变化吗?
答案 0 :(得分:0)
查询参数必须是字符串才能正确绑定。您的输入有效,因为值为String
对象。在name
数组中,您提供了Integer
。不幸的是,我在文档中没有找到任何关于它的提及,但你可以在这里看到一个有效的演示:http://jsbin.com/lixili/1/edit?html,js,output
如果我能就您的代码提供一些提示:
beforeModel
不是设置控制器属性的地方,在setupController
方法中执行,如在提供的JSBin中queryParamsDidChange
希望我帮忙!