是否可以在AngularJS中实现特征?

问题描述 投票:0回答:1

我想在AngularJs中实现像PHP这样的特性。这样做的最佳解决方案是什么?

angularjs mixins composition angular-module
1个回答
-1
投票

我发现了一种简单的方法:

首先,创建一个名为traits.js的文件

angular.module('myApp')
.factory('Traits', function() {
    return {
        apply: function (_class, _trait) {
            _.each(_trait, function (method, name) {
                _class.prototype[name] = method;
            });
        }
    }
});

然后,创建您的特征文件my-trait.js

angular.module('myApp')
.factory('MyTrait', function() {
    return {
        someMethod: function (param) {
            // 
        },
        anotherMethod: function (param) {
            // 
        }
    }
});

然后使用这样的特征:

angular.module('myApp')
.factory('MyResource', function($resource, Traits, MyTrait) {
    var resource = $resource();
    Traits.apply(resource, MyTrait);

    return resource;
});
© www.soinside.com 2019 - 2024. All rights reserved.