Ember hasMany 和数组的大小
Ember hasMany and size of array(s)
我有一个关系 hasMany,我想获取下一个索引号。所以,在我的控制器中我有:
nextStepIndex: Ember.computed(function () {
return this.get('floor').get('steps').get('length') + 1;
}).property('nextStepIndex')
我也用过:
nextStepIndex: Ember.computed(function () {
return this.get('floor').get('steps.length') + 1;
}).property('nextStepIndex')
但长度始终为0。不保存步数和地板数。所有对象都是用 createdRecord 创建的,步骤是用 pushObject 添加的。
我在步骤关系中看到它们有很多或数组 :
DS.PromiseManyArray
DS.PromiseArray
ArrayProxy
MutableArray
Array
我的 "step" 对象在 ArrayProxy 中。那么当我调用 length 方法时,我将获得什么尺寸?
因此,如果我可以在 {{#each}} 模板指令中获取子记录,我希望在调用长度方法时具有正确的大小。
我知道我可以获得 ArrayProxy 大小,但我不想对实现做出假设。
看来你的"property"设置不正确
property('floor.steps.[]')
另请记住,除非您从模板调用它或在 component/controller 中的另一个关系中使用它,否则它不会被触发。
顺便说一句,如果您处理的是异步 "steps",那么计算 属性 将不会开箱即用。您需要使用
nextStepIndex: function() {
var stepsPromise = this.get('floor.steps');
return DS.PromiseArray.create({
promise: stepsPromise.then(function(steps) {
// return your logics here
})
});
}.property('floor.steps.[]')
我有一个关系 hasMany,我想获取下一个索引号。所以,在我的控制器中我有:
nextStepIndex: Ember.computed(function () {
return this.get('floor').get('steps').get('length') + 1;
}).property('nextStepIndex')
我也用过:
nextStepIndex: Ember.computed(function () {
return this.get('floor').get('steps.length') + 1;
}).property('nextStepIndex')
但长度始终为0。不保存步数和地板数。所有对象都是用 createdRecord 创建的,步骤是用 pushObject 添加的。
我在步骤关系中看到它们有很多或数组 :
DS.PromiseManyArray
DS.PromiseArray
ArrayProxy
MutableArray
Array
我的 "step" 对象在 ArrayProxy 中。那么当我调用 length 方法时,我将获得什么尺寸?
因此,如果我可以在 {{#each}} 模板指令中获取子记录,我希望在调用长度方法时具有正确的大小。
我知道我可以获得 ArrayProxy 大小,但我不想对实现做出假设。
看来你的"property"设置不正确
property('floor.steps.[]')
另请记住,除非您从模板调用它或在 component/controller 中的另一个关系中使用它,否则它不会被触发。
顺便说一句,如果您处理的是异步 "steps",那么计算 属性 将不会开箱即用。您需要使用
nextStepIndex: function() {
var stepsPromise = this.get('floor.steps');
return DS.PromiseArray.create({
promise: stepsPromise.then(function(steps) {
// return your logics here
})
});
}.property('floor.steps.[]')