Javascript 连接字符串以形成作用域属性
我发现自己在Angular controller中重复了很多代码,因为我需要根据触发单击处理程序的元素更新作用域上的不同属性。以下是一个例子:Javascript 连接字符串以形成作用域属性,javascript,angularjs,Javascript,Angularjs,我发现自己在Angular controller中重复了很多代码,因为我需要根据触发单击处理程序的元素更新作用域上的不同属性。以下是一个例子: vm.toggleEdit = function(activity) { if (activity === 'gain') { vm.editGain = !vm.editGain; vm.newGainLimit = ''; } else if (activity === 'loss') { vm.editLoss =
vm.toggleEdit = function(activity) {
if (activity === 'gain') {
vm.editGain = !vm.editGain;
vm.newGainLimit = '';
} else if (activity === 'loss') {
vm.editLoss = !vm.editLoss;
vm.newWithdrawalLimit = '';
} else {
vm.editNeutral = !vm.editNeutral;
vm.newNeutralLimit = '';
}
};
我想做的是更有效地利用活动
参数。例如:
vm.edit + activity = !vm.edit + activity;
这样做可能吗?您可以写:
vm["edit" + activity] = whatever;
请注意,您的活动
值以小写字母开头,因此您必须处理这个问题
看起来您的数据结构应该如下所示:
var vm = {
gain: {
edit: true,
newLimit: ''
},
loss: {
edit: false,
newLimit: ''
},
// etc
};
这样,您的activity
值将选择一个子对象,所有这些子对象都是相似的