不同角度指令在一个地方的公共代码

时间:2015-09-15 16:06:27

标签: javascript angularjs

我有几个不同的角度指令,每个指令都显示一个基于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";
}

1 个答案:

答案 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'}));

}