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

时间:2019-02-28 12:22:29

标签: angularjs mixins composition angular-module

我想在AngularJs中实现PHP之类的特性。最好的解决方案是什么?

1 个答案:

答案 0 :(得分:-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;
});