【发布时间】:2014-06-09 05:10:12
【问题描述】:
我有以下具有许多计算属性的控制器,其中大多数使用辅助函数。在模板中引用时,所有这些都可以完美地工作。但是,如果我将这两个手动构建的计算属性添加到我的模板中,它们会失败,因为它们引用的属性在函数第一次运行时是未定义的。我从 numeric.js 中得到Uncaught TypeError: Cannot read property 'length' of undefined,因为如果是的话。我构建它的方式有什么问题?为什么使用帮助程序构建的计算属性可以很好地引用相同的基础模型数据?
AdvisorAccountsController = Ember.ArrayController.extend
open: Ember.computed.filterBy "model", "status", "Open"
pending: Ember.computed.filterBy "model", "status", "Pending"
openValues: Ember.computed.mapBy "open", "value"
pendingValues: Ember.computed.mapBy "pending", "value"
openCount: Ember.computed.alias "open.length"
pendingCount: Ember.computed.alias "pending.length"
openTotal: Ember.computed.sum "openValues"
pendingTotal: Ember.computed.sum "pendingValues"
showPending: Ember.computed.gt "pendingCount", 0
openTotalUSD: (-> numeral(@get "openTotal").format "$0,0.00").property "openTotal"
pendingTotalUSD: (-> numeral(@get "pendingTotal").format "$0,0.00").property "pendingTotal"
我认为正在发生的事情是模型在它被触发时仍在解析。这对于 sum 属性来说不是问题,因为结果值不依赖于其他东西,它们可以在自己的时间解决。
【问题讨论】:
标签: ember.js coffeescript