久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

angular.js - angular路由的控制器

瀏覽:78日期:2024-10-13 16:18:46

問題描述

路由時兩個頁面能公用一個控制器嗎,比如

javascript .state(’a’, {...controller : ’aaaController’ }) .state(’b’, {...controller : ’aaaController’ })

如果行的話,控制器是獨立的作用域還是公用的,比如說我在控制器里聲明了個變量i,在a頁面中改變了i的值,當我路由到b頁面時,i的值會跟著變嗎

問題解答

回答1:

最近也在學習angularjs,就樓主所說的問題,可以做一個簡單的演示:

有如下的html結構,不同的view,相同的conroller

<p ng-controller='MyCtrl'> <button ng-click='change()'>change to 3</button></p><p ng-controller='MyCtrl'> <button ng-click='show()'>show</button></p>

部分controller代碼:

.controller(’MyCtrl’, function ($scope, $log) {$scope.num = 2;$scope.change = function () { $scope.num = 3;};$scope.show = function () { $log.info($scope.num);}; });

首先點擊show按鈕,輸出結果如下:angular.js - angular路由的控制器

然后點擊change to 3按鈕,再次點擊show按鈕,結果如下:angular.js - angular路由的控制器

從這個實驗可以看出,雖然是同一個controller,實際上scope是兩個完全不相干的scope。scope的結構也是樹形的,同dom結構對應,如上的html結構就會有兩個scope。再看一個明顯的例子:

.controller(’MyCtrl’, function ($scope, $log) {$log.info(’init scope...’); });

看控制臺angular.js - angular路由的控制器結果打印了兩遍,說明方法執行了兩次。如果共享scope就不會執行兩次了。

綜上:你在控制器里聲明了個變量i,在a頁面中改變了i的值,當你路由到b頁面時,i的值不會改變

hope help you!

回答2:

這樣子使用比較奇怪,不太確定這樣使用是否可行

個人覺得正常的用法是:一個頁面,一個控制器如果是需要控制器之間共用變量和方法,可以通過在angular里建一個service存放變量和方法,在不同的controller里面,注入我們寫的service就可以了

官方文檔里也有明確說明service是用來share code的:ServicesAngular services are substitutable objects that are wired together using dependency injection (DI). You can use services to organize and share code across your app.

https://docs.angularjs.org/guide/services

回答3:

切換路由后控制器的生命周期就結束了,當前的$scope及子作用域就都死了。如果需要在多個控制器之間共享數據,可以使用服務。

相關文章:
主站蜘蛛池模板: 欧美福利在线 | 超碰国产在线 | 中文字幕一区二区三区四区 | 免费一区二区三区 | 久久免费视频网 | 国产午夜视频 | 亚洲码欧美码一区二区三区 | 91九色视频在线 | 中文字幕一区二区三区在线视频 | 少妇无套高潮一二三区 | 亚洲精品成人av | 97精品视频 | 龙珠z国语版291集全 | 91九色在线观看 | 综合伊人 | 色就是色欧美 | www视频在线观看 | 亚洲一区国产精品 | 精品视频在线免费观看 | 黄色国产视频 | 国产成人精品一区二区 | 欧美在线视频一区 | 毛片搜索| www.com国产精品 | 亚洲欧美日韩电影 | 欧美日韩国产91 | 一级毛片免费观看 | 一区二区三区在线看 | 久久久精品国产 | 午夜影院在线免费观看 | 美女三区 | 亚洲精品一区二区 | 欧美99| 黄色片网站在线免费观看 | 亚洲国产一区二区在线 | 日韩成人在线看 | 久久久亚洲综合 | 精品国产乱码久久久久夜 | 一级欧美 | www.99热这里只有精品 | 九九热这里 |