使用来自Ember.js docs
的相当多的复制粘贴App.CresShowResultController = Ember.ArrayController.extend({
queryParams: ['county'],
county: null,
actions: {
displayQueryData: function(){
this.transitionTo({queryParams: {county: 'someCounty'}});
},
},
});
分析表单后,将从另一个控制器调用该操作。 我收到一个错误:Uncaught TypeError:undefined不是函数
这也是路线。
App.CresShowResultRoute = Ember.Route.extend({
renderTemplate: function(){
this.render('showResult');
}
});
SideQuestion:如何使用transitionTo直接从另一个控制器更改URL参数而不使用“displayUseryData”作为中间人函数?
编辑:添加了我的Router.map以指定:
App.Router.map(function(){
this.resource('cres', function() {
this.route('showResult');
});
this.resource('about');
this.resource('posts', function() {
//child route posted inside the parent
this.resource('post', { path: ':post_id'});
});
});
像往常一样,感谢您的任何帮助评论!
答案 0 :(得分:0)
尝试:
App.CresShowResultController = Ember.ArrayController.extend({
queryParams: ['county'],
county: null,
actions: {
displayQueryData: function(){
this.transitionTo({queryParams: {county: 'someCounty'}});
}.bind(this),
},
});
我认为displayQueryData函数中的“this”是一个窗口引用。
答案 1 :(得分:0)
如果您在上面引用,只需更新queryParam本身就会产生您正在寻找的效果。
在路线中,您可以定义这些queryParams是否会替换该网址,或者是否会刷新模型。
当您希望切换到其他路线或不同型号时,请使用transitionToRoute。
App.CresShowResultController = Ember.ArrayController.extend({
queryParams: ['county'],
county: null,
actions: {
displayQueryData: function(){
this.set('county', 'someCounty');
// this.transitionTo({queryParams: {county: 'someCounty'}});
},
},
});