2016-12-02 68 views
0

我有问题让我的EmberJS/Ember-Data项目不显示已删除的记录。如何防止EmberJS列表显示已删除的记录?

我有一个路线:用户/ route.js

export default Ember.Route.extend({ 
    model: function() { 
     console.debug('UserRoute.model'); 
     return this.store.findAll('user'); 
    } 
}); 

模板:用户/ template.hbs

<table class="table table-condensed table-hover" style="table-layout:fixed"> 
     {{#each model as |user|}} 
      <tr {{action "editUser" user}} class={{user.status}}> 
       <td>{{user.userid}}</td> 
      </tr> 
     {{/each}} 
    </tbody> 
</table> 

用户路径:用户/ route.js

export default Ember.Route.extend({ 
    actions: { 
     deleteUser: function(user) { 
      var record = this.modelFor('user'); 
      record.destroyRecord().then(() => { 
       this.transitionTo('users'); 
      }); 
     }, 
    } 
}); 

用户模板生成deleteUser操作。

上的用户模型数据使用灰烬检查ID为59

Using Ember Inspector on the user model data with id 59

调用后destroyRecord:

所述网络事务标头从

the network transaction headers

和响应有效载荷后端

and response payload from backend

现在在店里

Now the user record flags in the store

但该项目仍然显示在用户的路由用户记录标志,允许一个查看,随后再次尝试只删除收到错误:

error

What我做错了!

感谢, 巴里

回答

-1

我不知道这是否会工作,但如果我是你,我会尝试:

var currentUser = this.modelFor('user'); 

store.find('user', currentUser.id).then(function (user) { 
user.deleteRecord(); 
    user.get('isDeleted'); // => true 
    user.save(); // => DELETE to /users/:id 
}); 

// OR 
store.find('user', currentUser.id).then(function (user) { 
    user.destroyRecord(); // => DELETE to /users/:id 
}); 

类似的代码可以从官方网站上找到: guides.emberjs.com/v1.10.0/models/creating-and-deleting-records/