我有几个不同的角度指令,每个指令都显示一个基于SAME条件和相同输入的图标,这些指令用于不同的htmls视图。
在哪里可以将逻辑放在一个地方以获得基于相同条件的图标,这样每个指令都不会重复/有逻辑来决定图标。
逻辑可以如下,每个指令都包含$ scope.item属性。
getIcon(item){
if(item.name === "A")
return "iconA";
if(item.name === "A")
return "iconB";
if(item.name === "A")
return "iconC";
return "iconHelp";
}
答案 0 :(得分:1)
简单的服务:
.service("IconUtils", function () {
return {
getIcon: function (item) {
if (item.name === "A")
return "iconA";
if (item.name === "B")
return "iconB";
if (item.name === "B")
return "iconC";
return "iconHelp";
}
}
})
控制器中的用法:
YourController: function($scope, IconUtils) {
console.log("IconUtils.getIcon()", IconUtils.getIcon({'name' : 'A'}));
console.log("IconUtils.getIcon()", IconUtils.getIcon({'name' : 'B'}));
console.log("IconUtils.getIcon()", IconUtils.getIcon({'name' : 'C'}));
console.log("IconUtils.getIcon()", IconUtils.getIcon({'name' : 'X'}));
}