我有一個多頁面的AngularJS Web應用程序,用作分析儀表板。我目前使用$ scope創建變量,所以我可以在HTML頁面上動態顯示一些數據。無論創建$ scope變量,無論用戶訪問哪個頁面,都將是全局變量,我只想將變量限制在其頁面和頁面中。由於我是Angular的新手,我不知道如何做到這一點。關於我能做什麼的任何想法?
0
A
回答
4
$ scope變量不是全局的;它們是特定於控制器的。如果您想要每個頁面特定的變量,請在每個頁面上放置一個控制器(並且不要將控制器添加到父元素,因爲其範圍將被繼承)。
1
爲每個頁面創建單獨的控制器。 $範圍在nt全局。它的範圍僅限於它的控制器
1
你$scope
基於控制器上,所以做出具體到一個頁面的東西做這樣的事情:
var app = angular.module('app', []);
app.controller('pageOne', ['$scope', function ($scope) {
$scope.forThis = "value for page one controller";
}]);
app.controller('pageTwo', ['$scope', function ($scope) {
$scope.forThis = "value for page two controller";
}]);
0
是的,你需要調用controllerAs語法。無論您是在路由中還是在HTML元素中執行此操作都不相關。但是這可以讓你在Angular中使用命名空間。在下面的例子中,我假設你在HTML元素上調用ng-controller指令。
你的HTML是:
<div ng-controller="MyController as my">
{{my.var}}
</div>
而且您的控制器將
.controller("MyController", function() {
this.var = "hello world";
}
這已經因爲角1.3.X實現,如果我是正確的。 $ scope實際上是污染性的,因爲它增加了原型繼承鏈控制器的使用。即子控制器做從父母繼承$範圍變量。
相關問題
- 1. AngularJS $ scope
- 2. 瞭解Angularjs中的$ scope機制
- 3. $ scope array和$ scope。$ apply in angularjs
- 4. angularjs中$ scope與scope的區別
- 5. Angularjs form scope bug
- 6. AngularJS中的函數($ scope)和['$ scope',function($ scope)]的區別
- 7. AngularJS指令限制
- 8. AngularJS中的$ scope是什麼?
- 9. AngularJS控制器$ scope保留關鍵字?
- 10. 在AngularJS中使用另一個控制器中的$ scope函數
- 11. $ scope變量在AngularJS中的$ scope函數內不起作用
- 12. AngularJS $ scope。$ on()和$ timeout()
- 13. 在AngularJS腳本中使用$ scope變量
- 14. 如何在angularjs中手動更新$ scope
- 15. 如何在AngularJS的$ scope中更改URL?
- 16. 是否.bind在angularjs中打破$ scope?
- 17. 使用$ scope。$ on()函數在angularjs中
- 18. 在angularJs中更改$ scope變量值
- 19. 如何在Angularjs中訪問$ scope服務?
- 20. AngularJS(Ionic):無法在其他控制器中發送$ scope信息
- 21. AngularJS控制器,而不是$ scope調用$應用在指令中
- 22. 在AngularJS中跨控制器更新$ scope變量
- 23. AngularJs在控制器和控制器之間共享$ scope
- 24. 在AngularJs中設置限制到Textarea
- 25. 在angularjs中使用$ scope作爲變量,在app.run中共享控制器的$ scope是否有什麼缺點?
- 26. angularJS:錯誤:未定義$ scope
- 27. $ scope push does not work angularjs
- 28. 將$ scope轉換爲angularjs
- 29. AngularJs scope屬性,並承諾
- 30. AngularJS。 Autorefresh $ scope variable in html
因爲海報的印象是$ scope是全局的,所以很有可能他有一個控制器連接到一個非常高級的元素(比如'
'),它的'$ scope'屬性幾乎被繼承每隔一個元素。他還需要擺脫這一點。 –@AlvinThompson,是的,它只是將範圍放在與他的頁面相關的正確控制器中。 –
我爲每個頁面都有一個控制器。出於某種原因,我的印象是$範圍在全球範圍內持有價值。我剛剛進行測試,它的工作原理就像你們所說的那樣!謝謝:) – Niraj