http://jsfiddle.net/9hazjjcc/裝訂服務變量要控制AngularJS
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-like。還是被認爲是最佳做法?
在理想情況下,第一個段落將更新從每當它改變了服務顯示targetMode變量。