无需传递需要评估的字符串,而是使用该服务在控制器之间直接共享功能。
该服务可以非常简单:
.factory('MyService', function(){
var service = {};
return service;
});
一旦注入并分配给两个控制器中的范围变量,您就有了一个中间单元,它可以充当跨控制器协作的可修改通道。
.controller('FirstController', function($scope, MyService){
$scope.service = MyService;
})
.controller('SecondController', function($scope, MyService){
$scope.service = MyService;
$scope.service.create = function(obj){
console.log('Creating');
}
$scope.service.edit = function(obj){
console.log('Editing');
}
})
在 的范围内FirstController,您现在可以调用在 的范围内也可用的函数SecondController:
<div ng-controller="FirstController">
<input type="checkbox" ng-model="button.type"> Toggle create/edit<br/>
<button ng-if="button.type" ng-click="service.create(obj)">Create</button>
<button ng-if="!button.type" ng-click="service.edit(obj)">Edit</button>
</div>
演示