如何将典型控制器转换为服务/工厂ANGULARJS?
嗨! 我正在做一个webapp,我需要将我的阵列共享给我的控制器。 谢谢如何将典型控制器转换为服务/工厂ANGULARJS?,angularjs,angularjs-service,Angularjs,Angularjs Service,嗨! 我正在做一个webapp,我需要将我的阵列共享给我的控制器。 谢谢 您的代码有一些问题。 你有 var newItemNo = $scopeItems.length+1; 你可能想要 var newItemNo = $scope.Items.length+1; 谢谢: 还有,为了你的 MyController.controller 第二部分,你想要什么 angular.module('appName').controller 您还可以将服务注入控制器或将其绑定到$rootscop
您的代码有一些问题。 你有
var newItemNo = $scopeItems.length+1;
你可能想要
var newItemNo = $scope.Items.length+1;
谢谢:
还有,为了你的
MyController.controller
第二部分,你想要什么
angular.module('appName').controller
您还可以将服务注入控制器或将其绑定到$rootscope,但在您的情况下不需要这样做:D角度工厂是单例的,因此工厂中的数据可以在所有控制器之间共享。您只需要将工厂注入控制器
var myApp = angular.module('myApp');
myApp.factory('myService', function() {
var _items = [{id:1}, {id:2}, {id:3}];
return { items : _items };
});
myApp.controller('MyCtrl1',['$scope', 'myService', function ($scope, myService){
$scope.items = myService.items;
]);
myApp.controller('MyCtrl2',['$scope', 'myService', function ($scope, myService){
$scope.items = myService.items;
]);
谢谢,我在提问之前更改了名称,我忘记了点。当然,我想将我的服务注入控制器,但我的问题是创建服务。非常感谢!亚什。我把服务和工厂搞混了。但是,如果我想向数组中添加项,我需要这样做吗?myApp.factory'myService',函数$scope{var{u items=[{id:1},{id:2},{id:3}];addItem:function$scope{u items.push$scope.item}返回{items:{u items};};是的,通常我也这么做。有助于保持控制器的轻量级。
var myApp = angular.module('myApp');
myApp.factory('myService', function() {
var _items = [{id:1}, {id:2}, {id:3}];
return { items : _items };
});
myApp.controller('MyCtrl1',['$scope', 'myService', function ($scope, myService){
$scope.items = myService.items;
]);
myApp.controller('MyCtrl2',['$scope', 'myService', function ($scope, myService){
$scope.items = myService.items;
]);