【发布时间】:2016-06-27 10:39:44
【问题描述】:
我刚刚学习 Ember,我对计算属性有点困惑。指南中的所有内容都使用字符串,例如从名字和姓氏创建全名的计算属性等。无论如何,我对如何使用整数感到困惑,因为语法似乎几乎需要使用字符串。
例如,我的控制器上有一个名为 count 的属性。
import Ember from 'ember';
export default Ember.Controller.extend({
count: 0,
counter: Ember.computed('count', function() {
var num = `${this.get('count')}`;
var newNum = parseInt(num) + 1;
this.set('count', newNum);
return this.get('count');
})
});
我知道这段代码真的很糟糕,我只是想说明我正在尝试做的事情和失败的事情。为什么Ember.computed 的第一个参数是字符串?
当我使用整数而不是字符串时,为什么我必须在 this.get 和 this.set 中使用字符串?我必须手动解析 int 否则它返回一个字符串,为什么它将我的 count 属性转换为字符串?
无论如何,在我运行时在 ember 检查器中
$E.get('count')
它确实成功添加了1,但未能继续添加1,这让我认为它没有更新实际的count属性。
非常感谢。感谢您的帮助。
【问题讨论】:
-
您考虑过使用
Ember.Object.incrementProperty()、link to Ember API吗?
标签: javascript ember.js computed-properties