0

我建設使用controller as語法角度控制器:

<body ng-controller="ctrl as myCtrl"> 
    <p>accessed via scope resolution: {{ foo }} </p> 
    <p>accessed via controller resolution: {{ myCtrl.foo }}</p> 
</body> 

在控制器我有這樣的:

myApp.controller('ctrl', function($scope) { 
    this.foo = 'Controller\'s foo'; 
    $scope.foo = '$scope\'s foo'; 
}); 

上述作品和版畫BOT controller's foo$scope's foo代碼。

  • 爲什麼?
  • 這僅僅是「未指定行爲」的情況嗎?
  • 有沒有什麼時候你想要在現實世界中使用兩者?
+1

從文檔:控制器實例可以通過指定ng-controller =「as propertyName」發佈到範圍屬性中。所以propertyName.foo指的是$ scope.foo – geckob

+0

此外,有些時候如果你有事件監聽器('$ scope。$ on()')或者需要顯式監視('$ $ watch()')一個變量或函數返回值,即使使用'controller as'語法。我在解釋原因時發現[這篇文章非常有用](https://toddmotto.com/digging-into-angulars-controller-as-syntax/)。 –

+0

請參閱下面的鏈接,詳細解釋http://stackoverflow.com/questions/11605917/this-vs-scope-in​​-angularjs-controllers – Manas

回答

相關問題