-2
我們可以用$scope
作爲angularJS
angular.module('myApp',[])
.controller("myController", function($scope){
$scope.info = "Hello";
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myController">
<input type="text" ng-model="info">
{{info}}
</div>
</body>
,或者我們可以在controller
明確地使用this
,並考慮使用控制器名稱命名空間像一個命名空間:
angular.module('myApp',[])
.controller("myController", function(){
this.info = "Hello";
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myController as ctrl">
<input type="text" ng-model="ctrl.info">
{{ctrl.info}}
</div>
</body>
我的問題是有什麼區別和選擇使用?
謝謝@Neerajkummar,我檢查了引用的答案。那麼,我們推薦使用「Controller as」語法?當使用'$ scope'以外的語法時,是否應該注意其他坑?因爲我閱讀了使用'Controller as'語法很少提及的[開發人員指南](https://docs.angularjs.org/guide),但大多數示例選擇了'$ scope'。 – armnotstrong
@Neerajkummar,搜索'控制器vs範圍'給我一些很好的重複問題,將深入這些問題,並結束這個問題,謝謝你的努力和抱歉的麻煩。 – armnotstrong
樂於助人@armnotstrong!到目前爲止,我還沒有看到使用ControllerAs語法的任何問題。在使用自定義指令時,最初我發現它很困難,因爲我不知道如何在自定義指令中使用ControllerAs。但總是有stackoverflow來幫助我們。乾杯! –