Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 关于滤波器的解析_Ember.js_Ember Data - Fatal编程技术网

Ember.js 关于滤波器的解析

Ember.js 关于滤波器的解析,ember.js,ember-data,Ember.js,Ember Data,我有一个过滤器,我不能让它解决承诺。它使用了一个名为“patient”的模型,它有许多“地址”,我想过滤掉地址类型为“Primary”的地址。过滤器似乎在工作,但只会返回一个承诺。提前谢谢你的帮助 病人控制员 解决方案(感谢@GJK) 我能看到的最明显的问题是,您没有监视地址的@每个属性。您的属性取决于模型。@each.addresses,这意味着您的模型是一个数组,您正在观察该数组中每个项目的addresses属性。但是您没有观察地址数组的内容,只观察数组本身 在我看来,您应该使用model

我有一个过滤器,我不能让它解决承诺。它使用了一个名为“patient”的模型,它有许多“地址”,我想过滤掉地址类型为“Primary”的地址。过滤器似乎在工作,但只会返回一个承诺。提前谢谢你的帮助

病人控制员

解决方案(感谢@GJK)
我能看到的最明显的问题是,您没有监视地址的
@每个
属性。您的属性取决于
模型。@each.addresses
,这意味着您的
模型
是一个数组,您正在观察该数组中每个项目的
addresses
属性。但是您没有观察
地址
数组的内容,只观察数组本身

在我看来,您应该使用
model.addresses.@each
作为从属属性。这将观察单个模型上的所有地址,包括观察
地址
数组的内容(该数组在承诺解析时更新)

编辑:还有,我显然读得不够远。你不应该打电话给
,然后
承诺。将其视为已解决,并在解决时进行更新。所以用这个来代替:

App.PatientController = Ember.ObjectController.extend
  primaryAddress: Em.computed 'model.addresses.@each', ->
    @get('model.addresses').filterBy 'addressType', 'Primary'

第一次完成此属性时,承诺将无法解析,因此筛选器不会返回任何内容。但是,当承诺解决时,属性将更新,过滤器将按照您的预期工作。

谢谢。我改变了它,并得到了同样的承诺,但这对于为什么它需要改变是很有意义的。我注意到了另一个我以前没有看到的问题。我发布了一个应该可以用的更新。非常感谢。终于开始工作了。我不得不从阵列中取出第一个物体,但其他一切都要感谢你。我将为我的问题添加解决方案。
  primaryAddress: Em.computed 'model.addresses.@each', ->
    @get('model.addresses').filterBy('addressType', 'Primary').get('firstObject')
App.PatientController = Ember.ObjectController.extend
  primaryAddress: Em.computed 'model.addresses.@each', ->
    @get('model.addresses').filterBy 'addressType', 'Primary'