gpt4 book ai didi

coffeescript - 枯竭 ember.js 计算属性

转载 作者:行者123 更新时间:2023-12-02 06:06:09 25 4
gpt4 key购买 nike

我有一组非常相似的计算属性:

WZ.ExercisesHomeController = Em.ArrayController.extend
content: Ember.A()

arms: ( ->
@filterProperty('group.name', 'Arms')
).property('@each.isArms')

abs: ( ->
@filterProperty('group.name', 'Abs')
).property('@each.isAbs')

back: ( ->
@filterProperty('group.name', 'Back')
).property('@each.isBack')

chest: ( ->
@filterProperty('group.name', 'Chest')
).property('@each.isChest')

legs: ( ->
@filterProperty('group.name', 'Legs')
).property('@each.isLegs')

有什么办法可以将其更改为一个属性,可能是一个集合属性?

最佳答案

是的。使用返回此过滤器函数的函数。

var filterFn = function(name) {
return function() {
return this.filterProperty('group.name', name);
}.property('@each.is' + name);
};

Ember.ArrayController.create({
arms: filterFn('Arms'),
legs: filterFn('Legs'),
...
});

您甚至可以使用 Ember 的重新打开来动态添加过滤功能。
App.ArrayController = Ember.ArrayController.extend();

var names = ['Arms', 'Legs', ...];

var toAdd = {};
names.forEach(function(name) {
toAdd[name] = filterFn(name);
});

App.ArrayController.reopen(toAdd);

关于coffeescript - 枯竭 ember.js 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11704507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com