AngularJS:代码在迭代对象时不起作用[复制]
发布时间:2020-12-17 07:35:42 所属栏目:安全 来源:网络整理
导读:参见英文答案 ‘this’ vs $scope in AngularJS controllers7个 我正在尝试从模板中的控制器empctrl填充员工对象列表. 这是控制器: app.controller('employeeController',function ($scope,employeeService) { this.employees = {}; this.populateTable = f
参见英文答案 >
‘this’ vs $scope in AngularJS controllers7个
我正在尝试从模板中的控制器empctrl填充员工对象列表. 这是控制器: app.controller('employeeController',function ($scope,employeeService) { this.employees = {}; this.populateTable = function (data) { this.employees = data; }; var error = function (err) { console.log("Error: " + err); }; // Call Service to List all Employees console.log("Service called to populate table."); employeeService.output().then(this.populateTable,error); this.populateTable(); }); 但是,我写的这段代码不起作用: <div ng-repeat="employee in empctrl.employees.allEmployees" class="table_row"> <div class="table_column" style="width:2%">{{ $index + 1 }}</div> <div class="table_column" style="width:8%">{{ employee.employeeName}}</div> <!-- 7 more columns --> </div> UI中没有显示任何内容. <div ng-repeat="employee in employees.allEmployees" class="table_row"> 因为我知道做范围是多么诱人.< everything>在控制器中,我试图尽可能避免使用$scope. 如果有人能够证明alias.abc和$scope.abc(别名是控制器的别名)之间正确使用$scope和差异,我将非常感激. 编辑:完全相同的问题是:‘this’ vs $scope in AngularJS controllers 感谢这个链接,PankajParkar.
你在populateTable函数中访问的问题是你在控制器函数中没有的问题.
最好将此变量保留在某个变量中,这样通过使用它可以确保引用正确的对象. 调节器 app.controller('employeeController',employeeService) { var vm = this; vm.employees = {}; vm.populateTable = function (data) { vm.employees = data; }; var error = function (err) { console.log("Error: " + err); }; // Call Service to List all Employees console.log("Service called to populate table."); employeeService.output().then(vm.populateTable,error); vm.populateTable(); }); 有关详细信息,我强烈建议您在this article上阅读 如果您对此范围感到困惑,请阅读this answer (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |