javascript - 表单提交时的 Ember 刷新路线

标签 javascript ember.js

提交时,我在其中一条 Ember route 有一张表格,我只需要刷新该表格,

App.PostController = Ember.ObjectController.extend({
    actions: {
      submit: function(e){
        var comment = this.get("ncomment");
        this.set("ncomment","");
        var self = this;
       $.post('/api/comment.php' , {comment : comment})
        .done(function(){
            self.refresh();
       });
      }
}
});

此代码给我一个错误TypeError:self.refresh不是一个函数

我该如何解决这个问题?

最佳答案

要再次进入相同型号的相同路线,您需要在该路线上调用 Em.Route.refresh 方法。要从 Em.Controller 执行此操作,您需要访问该路由。通常,您可以通过 this.get('target') (在 Controller 内部)来完成。然后, Controller 必须 send 操作到路由: this.get('target').send('actionName') (该操作必须位于路由的操作哈希中) .

完整示例:

App.IndexRoute = Ember.Route.extend({
  actions: {
    refresh: function() {
      this.refresh();
    }
  }
});

App.IndexController = Ember.ObjectController.extend({
  actions: {
    ref: function(){
      this.get('target').send('refresh');
    }
  }
});

jsbin .

关于javascript - 表单提交时的 Ember 刷新路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354036/

相关文章:

ruby-on-rails - Paypal future 付款

javascript - 在 Handlebars 中使用从 api 加载的自定义助手

testing - 如何创建虚拟组件以用于 Ember 集成测试?

javascript - 如何使用 AngularJS 在工厂中使用“$timeout”?

javascript - 滑动轮播 - 分页未指向正确的位置

javascript - 浏览器上传文件的问题

javascript - Emberjs #each 循环不适用于数组数据

javascript - 输入字符应该在 html 中打印一个新行

javascript - window.onclick = function(event) 仅适用于第一项

javascript - 从 aspx 获取变量值并在后面的代码中使用它