在Ember.js中根据每个hasMany中存在的对象筛选集合
我正试图根据每个项目中是否存在对象来筛选在Ember.js中根据每个hasMany中存在的对象筛选集合,ember.js,Ember.js,我正试图根据每个项目中是否存在对象来筛选Ember.Enumerable的一个实例hasMany关联 App.Project = DS.Model.extend users: DS.hasMany 'user', async: true App.User = DS.Model.extend() 如何根据每个项目users数组中是否存在单个用户对象来筛选项目集合 user = @store.find('user', 1) @store.find('project').filter (pro
Ember.Enumerable
的一个实例hasMany
关联
App.Project = DS.Model.extend
users: DS.hasMany 'user', async: true
App.User = DS.Model.extend()
如何根据每个项目users
数组中是否存在单个用户对象来筛选项目集合
user = @store.find('user', 1)
@store.find('project').filter (project) ->
project.get('users').then (users) ->
users.contains(user)
因为我的users
属性是Project
模型上的async:true
,所以调用Project.get('users')
会返回一个承诺,而这个承诺又是从filter()
调用返回的。相反,我想返回users
数组是否包含user
对象
这可能是一个简单的问题。我仍然在为javascript的承诺操心。我想你的问题在于:
project.get('users').then (users) ->
那么
的第一个参数是成功时使用的回调,而不是结果响应。所以你应该这样做:
user = @store.find('user', 1)
@store.find('project').filter(project) ->
users = project.get('users').then() ->
users.contains(user)
如果我的语法不太正确,请道歉。我对Coffeescript不太熟悉。在project.get('users')。然后(users)->
,then
的第一个参数是一个参数为users
的函数。因此,它编译成类似project.get('users')。然后(function(users){…