如何将典型控制器转换为服务/工厂ANGULARJS?

如何将典型控制器转换为服务/工厂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

嗨! 我正在做一个webapp,我需要将我的阵列共享给我的控制器。 谢谢


您的代码有一些问题。 你有

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;
]);