控制器是否应该拨打服务或工厂?
这个问题在这里已经有了答案:
如果对象定义语法更可取,请使用factory
app.factory('factory', function () {
...
return {
value: '...'
};
});
或者由于某种原因返回不是对象的东西。
如果this
语法更可取,请使用service
app.service('service', function () {
this.value = '...';
});
或者它应该返回与创建的对象new
从另一个构造函数,如
app.factory('factory', function () {
return new someConstructor();
});
与
app.service('service', someConstructor);
一个好的service
用例是,您可以使用controllerAs
语法无缝地重构现有控制器以继承常规服务,在这种情况下,不需要替换this
语句,如下所示:
app.service('parentControllerService', function () {
this.value = '...';
});
app.controller('MainController', function (parentControllerService) {
angular.extend(this, parentControllerService);
});
app.controller('ChildController', function (parentControllerService) {
angular.extend(this, parentControllerService);
this.value = '!!!';
});
链接地址: http://www.djcxy.com/p/77887.html