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はそれを最大限に述べています。コントローラでサービス変数を使用してビューを操作したいのですが、サービス全体をコントローラに公開したくないのは、角度のようなものではないからです。それともベストプラクティスと考えられていますか?
理想的には、最初の段落が更新され、サービスからのtargetMode変数が変更されるたびに表示されます。