EmberJS Computed Property,Uncaught TypeError:无法读取undefined的属性'findBy'

时间:2014-11-10 04:03:47

标签: ember.js ember-cli

我正在开发Ember CLI项目(版本0.0.46)

尝试在计算属性中使用Ember Arrays findBy()时,出现以下错误:

  

未捕获的TypeError:无法读取未定义的属性'findBy'

  • 我检查了位置数组。它在使用findBy()之前包含2个对象。

模板

{{view Ember.Select
     content=locations
     value=locationId
     optionValuePath="content.id"
     optionLabelPath="content.name"
     prompt="- Please select a Location -"
     class="form-control input-md"
     selection=selectedLocation
}}

计算属性:

selectedLocation:function(){
  var locations = this.get('controllers.xyz.locations');
  var matchedLoc =locations.findBy('id','loc2');
  return matchedLoc;
}.property('controllers.xyz.locations')
  • 注意:由于某种原因,当我在actions钩子中使用它时,上述逻辑工作正常。此外,仅当对计算属性进行第一次调用时,locations数组才为null。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

model.locations仍为空时,可能会调用此函数,稍后在设置model.locations时将再次调用此函数。添加.property('model.locations'),并在尝试呼叫model.locations之前检查findBy是否为空。