<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/angular.js/1.7.0/angular.min.js"></script>
<script src="https://cdn.staticfile.org/angular.js/1.7.0/angular-route.min.js"></script>
<script type="text/javascript">
angular.module('ngRouteExample', ['ngRoute'])
.controller('HomeController', function ($scope, $route) { $scope.$route = $route;$scope.a=false;})
.controller('AboutController', function ($scope, $route) { $scope.$route = $route;$scope.a=true;})
.config(function ($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'embedded.home.html',
controller: 'HomeController'
}).
when('/about', {
templateUrl: 'embedded.about.html',
controller: 'AboutController'
}).
otherwise({
redirectTo: '/home'
});
});
</script>
</head>
<body ng-app="ngRouteExample" class="ng-scope">
<script type="text/ng-template" id="embedded.home.html">
<h1> Home </h1>
</script>
<script type="text/ng-template" id="embedded.about.html">
<h1> About </h1>
</script>
<div ng-init="a=true">
<div id="navigation">
<a href="#!/home">Home</a>
<a href="#!/about">About</a>
</div>
<span ng-show="a">{{a}}</span>
<div ng-view="">
</div>
</div>
</body>
</html>
a完全沒有被動到....
剛剛我放錯程式
現在才是我要問的XDDDDD
點home時a會變成false,<span ng-show="a">{{a}}</span>
會隱藏
點About時a會變成true,<span ng-show="a">{{a}}</span>
會顯示
controller有被呼叫到,但是a根本沒動...
雖然我沒那麼熟 angular
不過你的 code 看不出來有對 route 切換
或者 home/about 被點擊時
對 a
有任何的操作
所以 a
沒動也是很正常的
這個範例給你參考
可是這是用ng-click達成的,在HomeController時有變動到a,在HomeController裡的console.log有跑資料出來,代表有呼叫到
喔喔
我漏看了你後面的那部分
但是你確定 controller 可以共用 變數嗎
也就是你
ng-init
的 a
跟你 home
跟 about
的 a
是同一個東西嗎
因為我在你的
$scope.a=true;
把 $scope
印出來
a
都是不存在的
這就是我想問的東西...
對阿
所以依照我上面說的
你認為的 a 有變動
實際上都只是在變動
home 的 a
跟
about a
你
<span ng-show="a">{{a}}</span>
的 a
永遠都是你
ng-init="a=true"
所設定的 true
至於 controller 如何共用 variable
你可以參考上面我貼的那個