Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 动态更新查询参数_Ember.js - Fatal编程技术网

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

在ember.js中,如何动态更新查询参数

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对于设置正确的
上下文至关重要,即使它看起来像是一个正常的函数传递和调用