【问题标题】:Ember destroyRecord failingEmber 销毁记录失败
【发布时间】:2014-12-19 12:35:40
【问题描述】:

我有一个 ember/ember-cli 应用程序,正在努力删除一条记录。这是动作定义:

export default Ember.ObjectController.extend({
  actions: {
    remove: function() {
      var model = this.get('model');
      model.destroyRecord();
      this.transitionToRoute('foo');
    }
  }
});

通过使用控制台日志语句,我可以看到这个方法被调用了。

下面是调用动作的方式:

<div class="panel-body list-group">
  {{#each tournament in model}}
    {{#link-to 'tournaments.play' tournament class="list-group-item"}}
      <span><strong>{{tournament.name}}</strong> <em>{{tournament.eventDate}}</em></span>
      <span {{action 'remove' tournament}} class="glyphicon glyphicon-trash pull-right"></span>
    {{/link-to}}
  {{/each}}
</div>

我尝试过{{action 'remove' tournament}}{{action 'remove'}},但无论哪种情况,控制台输出都是:

Uncaught TypeError: undefined is not a function titlematch-web/controllers/tournaments/index.js:12 __exports__.default.Ember.ObjectController.extend.actions.removevendor.js:43072 Mixin.create.sendvendor.js:33340 runRegisteredActionvendor.js:13360 Backburner.runvendor.js:31397 runvendor.js:33338 handleRegisteredActionvendor.js:51898 (anonymous function)vendor.js:4759 jQuery.event.dispatchvendor.js:4427 elemData.handle

看来我的动作被调用了,并且 some 模型存在。我究竟做错了什么?我该如何诊断?我所做的看起来就像我在指南中看到的一样:http://emberjs.com/guides/models/creating-and-deleting-records/

【问题讨论】:

    标签: ember.js ember-cli


    【解决方案1】:

    您忘记了操作中的参数(除非您想破坏控制器的模型,即列表,而不是单个锦标赛。)

    destroyRecord 返回一个承诺,所以这样更好

    remove: function(tournament) {
       var controller = this;
    
       tournament.destroyRecord().then(function() {
           controller.transitionToRoute('foo');
       }, function(error) {
           // todo better error handler, show message to user...
           console.error(error);
       });
    }
    

    【讨论】:

    • 我的action有{{action 'remove' tournament}}应该是什么?
    • 模板没问题,就是你控制器里面的函数。我已经按答案更新了。
    • 成功!我稍后会回来接受(仍然在接受冻结内)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多