ngrepeat 别名 as 和 controller as
ngrepeat alias as and controller as
我收到这个错误https://code.angularjs.org/1.3.16/docs/error/ngRepeat/badident
当我尝试将 ngRepeat 别名用作语法并将控制器用作语法时:
<li ng-repeat="item in vm.items | filter:vm.searchString as vm.collections">{{item}}</li>
不允许或我做错了什么?
应该是一个简单的标识符(以便您可以用 var {name} 声明它)
<li ng-repeat="item in vm.items | filter:searchString as collections">{{item}}</li>
如果您需要将结果存储在 vm 变量中,您可以这样做
<li ng-repeat="item in vm.collections = (vm.items | filter:vm.searchString)">{{item}}</li>
如果不是,那么 Donal 的解决方案将起作用
我明白了为什么我遇到了类似的问题。
Angular 文档对此并不明确...但是如果您要使用 Controller As 语法,则必须在控制器上将模型值设置为 "this"。您不能将值设置为 $scope.
当您在添加别名后检查 $scope 时,您可以在您的父 $scope 上看到一个新的 属性,其中包含您的别名。
我的别名是 pmt。我从
更改了我的属性和函数
$scope.myProperty
到
var vm = this;
vm.myProperty
当您检查我的别名控制器的 $scope.$parent 时,您会看到它的属性中列出了 vm。这就是他们使用别名的方式。
真希望文档对此有明确的说明。
我收到这个错误https://code.angularjs.org/1.3.16/docs/error/ngRepeat/badident 当我尝试将 ngRepeat 别名用作语法并将控制器用作语法时:
<li ng-repeat="item in vm.items | filter:vm.searchString as vm.collections">{{item}}</li>
不允许或我做错了什么?
应该是一个简单的标识符(以便您可以用 var {name} 声明它)
<li ng-repeat="item in vm.items | filter:searchString as collections">{{item}}</li>
如果您需要将结果存储在 vm 变量中,您可以这样做
<li ng-repeat="item in vm.collections = (vm.items | filter:vm.searchString)">{{item}}</li>
如果不是,那么 Donal 的解决方案将起作用
我明白了为什么我遇到了类似的问题。
Angular 文档对此并不明确...但是如果您要使用 Controller As 语法,则必须在控制器上将模型值设置为 "this"。您不能将值设置为 $scope.
当您在添加别名后检查 $scope 时,您可以在您的父 $scope 上看到一个新的 属性,其中包含您的别名。
我的别名是 pmt。我从
更改了我的属性和函数$scope.myProperty
到
var vm = this;
vm.myProperty
当您检查我的别名控制器的 $scope.$parent 时,您会看到它的属性中列出了 vm。这就是他们使用别名的方式。
真希望文档对此有明确的说明。