Ember-Data如何跟踪相关数据?

时间:2014-06-18 16:48:47

标签: ruby-on-rails ember.js ember-data

我正在尝试与ember-data和协会的工作方式达成协议。

这是一个使用带有rails的ember的应用程序。

我有以下内容:

App.Permission = DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),
  group: DS.belongsTo('group')
});

App.Group = DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),
  permissions: DS.hasMany('permission', {async: true}),
  user: DS.belongsTo('user')
});

App.User = DS.Model.extend({
  username: DS.attr('string'),
  email: DS.attr('string'),
  password: DS.attr('string'),
  groups: DS.hasMany('group', {async: true})
});

对于群组,我有两个列表,未选中和已选中。 HTML5拖放用于将数据从一个列表拉到另一个列表。对于我选择的数据,在我的控制器中,我有:

selectedPermissions: function() {
  return Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {
    sortProperties: ['name'],
    content: this.get('permissions')
  });
}.property('model.selectedPermissions')

这完美无瑕!任何转到选定方的权限都会自动保存并与该组关联。

现在,对于用户来说,还有两个列表,未选中和已选择,以及与上面相同的设置。对于用户控制器中的选定数据,我有:

selectedGroups: function() {
  return Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {
    sortProperties: ['name'],
    content: this.get('groups')
  });
}.property('model.selectedGroups'),

由于某些原因,这会发生的情况是,当我移动第一组或第一组时,它们与用户相关联。但是,任何未来的变化都不是。我查看发送到rails的数据,它发送的是原始值的数组,而不是更新的数据。

这两个密切相关,他们的代码非常相似。我已经验证了它们之间的所有代码都是正确的。

我知道createWithMixins不是问题,因为我尝试删除它并且它没有任何区别,所以还有其他事情发生。

我的一个问题是:通过将“this.get('groups')”绑定到selectedGroups,ember是否需要正确关联它们之间的数据?它似乎就是组/权限案例中发生的事情。我没有任何其他特殊代码可以做任何事情来设置。

当然,更大的问题是,我在这里遗漏了什么吗?

任何指针都会受到赞赏,因为我真的迷失了这个。

我知道我只发布了一些代码,但希望它足以使用。

0 个答案:

没有答案