使用$scope方法时的ControllerAs语法
ControllerAs Syntax when using $scope methods
我正在尝试在AngularJS 1.3 中实现controllerAs
语法
我开始我的函数声明是这样的:
function() {
var myCtrl = this;
myCtrl.foo = foo; // works fine
myCtrl.$on("foo", bar); // fails, says myCtrl.$on is not a function
}
$scope
的控制器内部使用this
。而$scope
是一个特殊的对象,它包含了$watch
、$on
等特殊性质
因此,当您需要监视某些变量或侦听事件时,您必须仅使用$scope
。
$scope
和myCtrl
标识符不可互换。'Controller as’是1.2中引入的一个语法糖,它试图修复$scope
的经验(至少是其中受到范围原型继承不良影响的部分)。
<body ng-controller="MyCtrl as myCtrl">
...
app.controller('MyCtrl', function () {
...
});
与相同
<body ng-controller="MyCtrl">
...
app.controller('MyCtrl', function ($scope) {
$scope.myCtrl = this;
...
});
它并没有消除对作用域的需要,而是在控制器中引入了有用的模式(注意,在前一个示例中不需要注入$scope
,除非需要$scope.$on
等)。
通过记录$scope
和myCtrl
,您可以很容易地自己查看它。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- Javascript语法向设置发出sessionStorage值
- 使用$scope方法时的ControllerAs语法
- AngularJS类中的引用属性(ControllerAs语法)
- Angular JS使用controllerAs和这个语法与范围或这个变量
- Firebase 3 向数据绑定,采用 ControllerAs 语法
- 访问指令's将范围与“;这个“;使用controllerAs语法
- 如何使用新的controllerAs语法和面向对象控制器在Angular中实现双向绑定
- 如何在AngularJS modal中使用controllerAs语法?的方法
- 如何使用controllerAs语法实时更新另一个angular控制器
- ControllerAs with vm.语法:如何
- 使用controllerAs语法通过$watch指令更改父控制器模型
- 使用ControllerAs语法绑定服务变量,不带$scope
- AngularJS 1.4:如何使用bindToController和controllerAs语法创建双向绑定
- AngularJS:在对象中使用ControllerAs语法定位窗体