我正在尝试根据每个项目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
模型上的async: true
属性为Project
,因此调用project.get('users')
会返回一个承诺,而承诺又会从filter()
调用返回。相反,我想返回users
数组是否包含user
对象。
这可能是一个简单的问题。我仍然用javascript承诺弄脏了。
答案 0 :(得分:0)
我认为你的问题在这里:
project.get('users').then (users) ->
then
的第一个参数是您在成功时使用的回调,而不是结果回复。所以你应该这样做:
user = @store.find('user', 1)
@store.find('project').filter(project) ->
users = project.get('users').then() ->
users.contains(user)
如果我的语法不正确,请道歉。我对Coffeescript不太熟悉。