我刚接触Angular,很有可能我的问题的答案是“这不是angular是怎么做的”。
我有一个模板扩展指令,它提供了一个检查表:
[ ] mushrooms
[ ] peppers
[ ] onions
[ ] artichokes
[ ] anchovies清单的dataSource是一个对象数组。底层对象的属性之一是"bits":
mushrooms bits:2,
peppers bits: 4,
onions bits: 8,
artichokes bits: 16,
anchovies: 32. 如果一个人点了一份有蘑菇和凤尾鱼的披萨,那么他的总分是34分。
checklist指令有没有办法封装$scope可以访问的TotalBits()方法?在$scope中是否有实例化的检查表对象的“句柄”?
发布于 2014-10-18 19:13:04
您可以始终将回调方法传递给指令(作为属性),一旦计算出位数,指令就会调用该方法。
发布于 2014-10-18 21:09:48
您可以扩展模块以实现此功能。请参阅此示例:
var menu = [{
name: 'mushrooms',
bits: 2,
selected: false
}, {
name: 'pepers',
bits: 4,
selected: false
}];
menu.totalBits = function () {
var total = 0;
this.forEach(function (item) {
if (item.selected) total = total + item.bits;
});
return total;
};由于JS是可塑性的,我们可以将totalBits函数添加到模型数组中,这就是它。
我也为它做了一个小提琴,http://jsfiddle.net/s8n5y2kg/
https://stackoverflow.com/questions/26439086
复制相似问题