Ember.js 动态更新查询参数
在ember.js中,如何动态更新查询参数Ember.js 动态更新查询参数,ember.js,Ember.js,在ember.js中,如何动态更新查询参数 export default Ember.Controller.extend({ myQuery: "test", queryParams: ["myQuery"], actions: { click() { this.set("myQuery", "update query param"); } } }); export default Ember.Route.ex
export default Ember.Controller.extend({
myQuery: "test",
queryParams: ["myQuery"],
actions: {
click() {
this.set("myQuery", "update query param");
}
}
});
export default Ember.Route.extend({
queryParams: {
myQuery: { refreshModel: true }
},
model(params) {
console.log(params)
}
});
当动作被触发时,应该再次调用模型钩子,除非我错了
,导航到
/test
路线并单击按钮。在控制台内,您可以看到模型挂钩没有再次触发 您的问题与以下事实有关:您没有使用操作
帮助程序将操作传递给我的按钮
组件,并像单击=操作那样传递操作。从测试.hbs中单击
。当你这样做的时候<代码>此
上下文用于单击
函数,但Emberjs未正确设置。也就是说,如果你调试你的代码,你会看到;当单击test.js中的操作时,在您的旋转中的这个上下文实际上被设置为我的按钮
组件。这意味着您只需设置myQuery
组件的mybutton
属性;它对控制器的myQuery
属性没有任何影响;因此,不会更新控制器的属性,因此即使将模型挂钩声明为refreshModel:true
,也不会再次运行该挂钩
你能做什么?只要使用操作
助手,一切都会正常工作。只需检查以下内容。url将被更新,模型挂钩将按照您的意愿执行。记住这一点<代码>操作
helper对于设置正确的此
上下文至关重要,即使它看起来像是一个正常的函数传递和调用