javascript - angular公共功能的抽象定义问题
黄舟
黄舟 2017-04-11 11:54:01
0
2
465

在目前工作中,遇到很多去判断一个字符串是否在一个数组里的需求,类似jQuery里的inArray函数,我在全局的MainCtrl控制器里定义了一个判断方法,返回布尔值,现在需要在指令里调用这个方法。

后来我又想了下,是不是应该把这个定义放在Service里,让其他控制器和指令共享这个服务,不知道我这个想法是否正确,望各位大神指教!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(2)
刘奇

思路正确,善于思考,点赞

补充:

你思路都有了,怎么还缺demo?^^,来给你个简单的

app.service('utils', [function() {
    
    this.inArray = function(arr, str) {
        return arr.indexOf(str) >= 0;
    };
    
}]);

然后你就可以在你的各种controllerdirective里用了,譬如:

app.directive('fuckDir', ['utils', function(utils) {
    return {
        restrict: 'AE',
        scope: {},
        link: function() {
            console.log(utils.inArray(['hello', 'fuck'], 'fuck'));
        }
    };
}]);
いいねを押す +0
左手右手慢动作
angular.module("myapp",["util"]).controller("myCtrl",["utilService",function(utilService){
    utilService.inArray();
}]);
angular.module("util").factory("utilService",function(){
    return {
        //do something...
        inArray : function(){}
    }
});

我是这样写。。给你参考
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート