私のindex.htmlは次のようになります:
<div id="div1" ng-controller="StartMenu">
<div id="button1" ng-click="doSomething()"></div>
{{value}}
</div>
<div id="div2" ng-view></div>
モジュール構成:
angular.module('app').config([$routeProvider, function($routeProvider) {
$routeProvider.when('/start', {
templateUrl: 'partials/start.html', controller: StartMenu
});
}]);
start.html:
<div id="button2" ng-click="doSomething()"></div>
{{value}}
そしてコントローラー機能:
function StartMenu($scope, globals) { // service globals defined elsewhere
$scope.value = globals.value
$scope.doSomething = function() {
// Manipulate globals.value
$scope.value = globals.value;
}
}
問題:index.htmlのこれら2つのdiv要素は、同じコントローラー関数を共有しています。#div1の#button1をクリックすると、doSomethingが呼び出され、$scope.valueが変更されます。変更はすぐに#div1にレンダリングされ、{{value}}が変更されますが、#div2は変更されません。#div2を「強制」してレンダリングし、{{value}}の変更を表示するにはどうすればよいですか?