我试图弄清楚ng-show
当状态改变时如何更新我的变量。在我的默认index.html
文件中,我有:
<div id="searchBar" ng-show="searchBar" ng-controller="mainController"></div>
由于这不是我的page1模板的一部分,searchBar
因此在状态更改时不会更新。变量实际上正在正确更改,但ng-show
不知道这一点。
我知道有角度,但是有人对在控制器中更改时ng-show
注意到变化有什么建议吗?searchBar
var routerApp = angular.module('app', ['ui.router'])
.service('MainShared', function () {
var MainShared = this;
MainShared.searchBar = false;
})
.controller('mainController', function($scope, MainShared) {
$scope.searchBar = MainShared.searchBar;
});
routerApp.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/page1');
$stateProvider
.state('page1', {
url: '/page1',
templateUrl: 'pages/templates/page1.html',
controller: 'page1'
});
});
routerApp.controller('page1', function($scope, $http, $state, MainShared) {
MainShared.searchBar = true;
});
编辑:让我们知道,从下面的答案中,您不需要服务来执行此操作。