AngularJS:迭代对象时代码不工作
这个问题在这里已经有了答案:
问题是this
,你在里面访问populateTable
功能不是this
,你有没有在你的控制器功能。
最好把this
变量放在一些变量里面,这样你就可以确保你指的是正确的对象。
调节器
app.controller('employeeController', function ($scope, 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
scope
感到困惑,那么请阅读这个答案
您的变量添加到$scope
,而不是this
类似:
$scope.customers = {};
$scope.populateTable = function (data) {
$scope.employees = data;
};
编辑:这两种方法的工作。 请参阅这篇文章的深入解释。
将“this”替换为vm(View-Model)将解决您的问题。 不污染$ scope对象是一件小事。 这是一个全局上下文,其值取决于函数调用。
所以,在你的控制器中分配,
var vm = this;
vm.empTable = function (data) {
vm.employeeList = data.data;
};
..并在控制器的其他地方使用vm对象。 在视图中使用多个控制器的同时保持代码清洁会很有用。
别忘了给控制器一个别名,
<div ng-controller="MainCtrl as main">
<div ng-repeat=" employee in main.vm.employeeList ">
{{employee.name}}
</div>
</div>
链接地址: http://www.djcxy.com/p/77799.html
上一篇: AngularJS: code not working when iterating through object
下一篇: Difference between $scope and this in controller context?