【发布时间】:2016-09-22 20:35:00
【问题描述】:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope, myService) {
$scope.targetMode = myService.targetMode;
$scope.myService = myService;
}
myApp.service('myService', function() {
this.targetMode = 2;
});
function ctrlTwo($scope, myService) {
$scope.addToTargetMode = function() {
myService.targetMode++;
}
}
HTML:
<div ng-controller="MyCtrl">
<p>Hello, {{ targetMode }}!</p>
<p>Hello, {{ myService.targetMode }}!</p>
</div>
<div ng-controller="ctrlTwo">
<button ng-click="addToTargetMode()">
Add To Target Mode
</button>
</div>
这个 JSFiddle 说了大部分。我想在控制器中使用服务变量来操纵视图,但我不想将整个服务暴露给控制器,因为这看起来不太像 Angular。或者这被认为是最佳做法?
理想情况下,第一段会更新以显示服务中的 targetMode 变量,只要它发生变化。
【问题讨论】:
标签: javascript angularjs service controller