首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ArrayController模型绑定到存储/同步ArrayController与Store

将ArrayController模型绑定到存储/同步ArrayController与Store
EN

Stack Overflow用户
提问于 2014-08-06 08:54:32
回答 1查看 181关注 0票数 0

我目前正在与Arraycontroller和它的模型进行斗争。如果存储中的数据发生变化,则不会发生任何更改。特别是如果记录被附加到商店,我希望处理这些条目的数组控制器与存储一起更新。我以为有一些数据库,但似乎并不是这样。

假设我有这样的路线:/#/institute/10/user-administration

研究所的模型看起来像

代码语言:javascript
复制
App.Institute = DS.Model.extend({
  name: DS.attr('string'),
  users: DS.hasMany('user', {async:true})
});

这就是我如何设置Arraycontroller模型的方法:

代码语言:javascript
复制
App.UserAdministrationRoute = Ember.Route.extend({
  model : function() {
    // get users from the current institute
    return this.modelFor('institute').get("users").then(function(users) {
      return users.filter(function(item, index, enumerable){
        // filter anonymous dummy users
        return item.get('name') != "~dummy~";
      });
    });
  }
});

在UserAdministration-Controller中,我做的是

代码语言:javascript
复制
App.UserAdministrationController = Ember.ArrayController.extend({
  needs: ['institute'],
  actions : {
    createNewUser : function() {
      var newUser = this.store.createRecord('User', {
        role : 0
      });
      this.transitionToRoute('user-administration.edit', newUser);
    }
  }
});

user-administration.edit路由中,我使用this.get('model').save();保存用户

但是ArrayController不会用刚刚在商店中创建和保存的记录来更新。我想也许有一种方法可以将控制器模型连接到filter上,但是我如何定义过滤器来定义ArrayController的模型。

谢谢你在这方面的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-08 03:32:12

经过更多的思考和对这个问题的关注,我可以自己解决这个问题。实际上,ArrayController并没有真正绑定到商店,因为我没有将store.filter设置为模型。

为了实现always控制器始终与存储的数据同步,我必须将过滤器定义为模型。在我的路线上的模型定义现在看起来像这样,工作起来就像一个字符!

代码语言:javascript
复制
App.UserAdministrationRoute = Ember.Route.extend({
  model : function() {
    var scope = this;
    return this.modelFor('institute').get("users").then(function(){
      return scope.store.filter('user', function(user){
        return user.get('name') != "~dummy~";
      });
    });
  }
});

对数据的过滤和查询有很大的区别,我只需要意识到:我应该使用查询还是筛选器来搜索记录?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25156067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档