Aurelia使用ES5计算属性
Aurelia computed properties with ES5
我正在通过Aurelia教程工作,但故意只使用ES5和AMD/RequireJS,因为最初我试图减少技术过载,我可能需要在我当前的生产应用程序中引入(目前使用Angular,但我正在考虑切换到Aurelia而不是Angular 2),但我坚持获得计算属性工作。
我注意到四月的更新从对象原型中删除了允许以下语法的计算函数,但我不确定我应该做什么而不是以下语法:
Welcome.computed({
fullName : function() { return this.firstName + " " + this.lastName; }
});
我可以用下面的代码实现同样的效果,但是考虑到要实现的效果,它似乎相当啰嗦!有正确的奥蕾莉亚方式吗?
Object.defineProperty(
Welcome.prototype,
"fullName",
{
get: function() { return this.firstName + " " + this.lastName },
enumerable: true
});
你所做的是正确的-你总是可以重新添加计算工厂方法,因为编写所有这些额外的ES5代码可能会变得乏味。
我还建议指定computed属性的依赖项以优化数据绑定效率。下面的代码片段是等价的:
ES5:
function fullName() { return this.firstName + ' ' + this.lastName }
fullName.dependencies = ['firstName', 'lastName'];
Object.defineProperty(
Welcome.prototype,
'fullName',
{
get: fullName,
enumerable: true
});
ES6/ES7:
@computedFrom('firstName', 'lastName')
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
http://aurelia.io/docs.html adaptive-binding
相关文章:
- 如何在自定义指令中获取计算的属性
- Ember服务在注入组件并在计算属性中使用后是未定义的
- 如何计算一个对象中五个属性中有多少是非null的
- 使用javascript动态计算top属性
- 如何递归地计算它在对象中出现的目标键(属性)的数量
- Ember.js:未在组件'中渲染的模型的计算属性;关于变更的参考
- 升级到Ember 1.0计算属性在视图中不再有效
- ES6非结构化中的计算属性-非结构化整体对象
- 在Ember中,can服务具有计算属性
- Tracker重新计算函数出现异常:无法读取属性'0'的未定义
- 计算数组中多个对象的属性
- Ember.js数组控制器计算属性的复选框
- 在ember.js中访问模型之外的计算属性
- Vue.js在计算属性中设置值
- 如何根据其他属性计算对象文字中的对象属性
- 为特定属性计算JSON对象的长度
- 在JavaScript中作为对象属性计算函数
- Javascript:根据属性计算产品变体的数量
- 使用td属性计算乘积之和
- 对每个调用执行JavaScript属性计算