如果我有一个控制器
angular
.module("TestApp")
.controller('MainCtrl', function ($scope, MyService) {
var array = [1, 4, 5, 6];
function remove() {
MyService.remove('id');
$scope.array = array;
}
render();
}
和一个服务
angular.module('TestApp').factory('MyService', function ($rootScope) {
function remove(id) {
$rootScope.array.splice(id, 1);
}
}
但我找不到我放入控制器中$scope的数组。我在$rootScope中看不到它。我能处理这个问题吗?
您可以将$scope作为参数传递给服务方法MyService.remove
angular.module('TestApp').factory('MyService', function ($rootScope) {
function remove(id, scope) {
scope.array.splice(id, 1);
}
}
但在那之后,你的服务只是一些功能的袋子。请考虑将数组存储在服务中(在cat中存储在变量中),并添加从MyService
中读取、写入和删除元素的方法。通过这种方式,您将创建集合模式。