使用“$scope”语法时,检查单个复选框会正确输出其对应的对象名称,但是当将“ControllerAs”语法应用于相同代码时,检查单个复选框会异常生成错误
$scope.users = [{.....}] //using $scope syntax
$scope.selected = [];
$scope.exist = function(item) {
return $scope.selected.indexOf(item) > -1;
}
$scope.toggleSelection = function(item) {
var idx = $scope.selected.indexOf(item);
if (idx > -1) {
$scope.selected.splice(idx, 1);
} else {
$scope.selected.push(item);
}
}
在 ControllerAs 中使用上述代码的表示
vm.users = [{....}] //Using 'Controller As' Syntax
vm.selected = [];
vm.exist = function(item) {
return vm.selected.indexOf(item) > -1;
}
vm.toggleSelection = function(item) {
var idx = vm.selected.indexOf(item);
if (idx > -1) {
vm.selected.splice(idx, 1);
} else {
vm.selected.push(item);
}
}
chrome 开发者工具返回错误
TypeError: vm.selected.indexOf 不是 GridController.vm.exist (gridController.js:37) 的函数
演示控制器作为,http ://plnkr.co/edit/5auLDGbpyDFUcpPxBzNs?p=preview
演示 $Scope,http ://plnkr.co/edit/2jz0ieeCWJE6tvzXK69A?p=preview
请问在这种情况下应用Controller As语法时可能是什么问题或可能是一个错误,谢谢