【发布时间】:2015-05-30 19:13:23
【问题描述】:
我正在尝试使用路由模板登录按钮中的 HomeCtrl 在导航中操作 ng-switch。无法弄清楚如何在不使用 rootscope 或父 hack 的情况下访问不同的 $scope 更清洁方式。请帮忙。
<body ng-app="myApp">
<div class="nav" data-ng-controller="HomeCtrl">
<div ng-switch on="loggedin">
<p ng-switch-when="false">please login</p>
<p ng-switch-when="true">Welcome</p>
</div>
</div>
<div class="container" ng-view="">
<!-- partial html -->
<button type="button" ng-click="Login()">Login</button>
<button type="button" ng-click="Logout()">Logout</button>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script>
angular.module('myApp', []);
angular.module('myApp').controller('HomeCtrl', ['$scope', function($scope) {
$scope.loggedin = false;
$scope.Login = function() {
$scope.loggedin = true;
};
$scope.Logout = function() {
$scope.loggedin = false;
};
}]);
</script>
</body>
【问题讨论】:
-
你到底需要什么?
-
我想做ng-switch,但是当按钮在控制器之外时代码不起作用
-
如果您将按钮放在控制器之外,代码将不起作用。您可以将 data-ng-controller="HomeCtrl" 放在 标签上。
-
使用服务,code.angularjs.org/1.3.14/docs/guide/services,它们是在控制器之间共享信息和行为的正确方式。
标签: javascript angularjs scope angularjs-scope