我还没有看到你的代码,但认为你的问题是你正在尝试更改视图范围,并且它与你的导航范围不同div
有。在这种情况下,您可以修改导航 div 使其具有与视图相同的范围或使用$rootScope
.
HTML
<!DOCTYPE html>
<html ng-app="app">
<head>
<script data-require="angular.js@*" data-semver="1.2.10" src="http://code.angularjs.org/1.2.10/angular.js"></script>
<script src="http://code.angularjs.org/1.2.10/angular-route.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h1>Log-on App</h1>
<div>
<ul ng-show="variable">
<li><a href="#/one">One</a></li>
<li><a href="#/two">Two</a></li>
<li><a href="#/three">Tree</a></li>
<li><a href="#/fore">Fore</a></li>
</ul>
</div>
<div ng-view></div>
</body>
</html>
JavaScript
angular.module('app', ['ngRoute']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/', {
controller: 'appController',
template: '<div ng-show="!variable"><input type="text" /><input type="button" value="Log On" ng-click="login()" /></div>'
}).
otherwise({
redirectTo: '/'
});
}]).
controller('appController', ['$rootScope', '$scope', function($rootScope, $scope) {
$rootScope.variable = null;
$scope.login = function() {
$rootScope.variable = true;
}
}]);
笨蛋:http://plnkr.co/edit/Cjn2K8IEg0WQZDGVwPIw?p=preview http://plnkr.co/edit/Cjn2K8IEg0WQZDGVwPIw?p=preview
我能想到的另一个原因是你正在尝试修改$scope
控制器外部。在这种情况下你应该打电话$scope.$digest()
or $scope.$apply()
修改范围变量后。
JavaScript
function logOnClick() {
var $scope,
div;
div = document.getElementById('navigationDivId');
$scope = angular.element(div).scope();
$scope.variable = true;
$scope.$digest();
}
编辑:使用远程服务登录