【发布时间】:2015-08-18 22:12:26
【问题描述】:
我想知道angularjs中“Controller as”或“$scope”语法的主要区别是什么。
- 它们是否对性能有任何影响,如果有,哪种语法更可取。
- “Controller as”语法肯定会提高代码的可读性,因为 Knockout.js 和其他 JavaScript 框架遵循相同的语法。
-
$scope 将提供作用域继承,这有时会给我们带来奇怪的行为,例如
<div ng-controller="firstController"> ParentController: <input type="text" ng-model="parent"/> <div ng-controller="secondController"> ChildController: <input type="text" ng-model="parent" /> </div> </div> app.controller('ParentController', function ($scope) { $scope.parent = "parentScope"; }).controller('ChildController', function ($scope) { /*empty*/ });a) 最初,child 将获得 parent 属性,当我们更新时它会显示 'parentScope' 父子也会得到更新。但是,如果我们更改了 child 属性,现在更新 parent 并不会修改 child,因为它有自己的 scope 属性。
b) 如果我使用控制器作为语法更改子级也会更新父级。
【问题讨论】:
标签: javascript angularjs