2016-12-02 67 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/