我用的是赖斯特尔和angularJS。
下面是我的控制器代码。我无法在控制台上打印教师输出,也无法使用vm.teacherList。
案例1:
angular.module("subjectManagement").controller('subjectTeacherAllocationCtrl',
function ($scope, $state, $location, Restangular) {
var vm = this;
vm.teacherList = Restangular.all("teacher").getList().$object;
console.log( " vm.teacherList ---> " + vm.teacherList);
});
console output is only `vm.teacherList --->`当我检查Network时,我可以使用以下数据作为教师的响应
[{teacherId: "3", empId: "9", teacherDateOfJoining: "2015-11-02", teacherJoiningGrade: "TGT",…},…]
0: {teacherId: "3", empId: "9", teacherDateOfJoining: "2015-11-02", teacherJoiningGrade: "TGT",…}
1: {teacherId: "4", empId: "10", teacherDateOfJoining: "2015-11-02", teacherJoiningGrade: "TGT",…}案例2:如果我将相同的代码行放置在状态解析中而不是控制器中,则为。我可以在控制台中打印vm.teacherList,也可以使用vm.teacherList做任何事情。
.state('subjectTeacherAllocation', {
url: '/subject/subjectTeacherAllocation',
templateUrl: 'app/subject/edit/subjectTeacherAllocation.html',
controller: 'subjectTeacherAllocationCtrl as vm',
resolve: {
teacher: function (Restangular, $stateParams) {
return Restangular.all('teacher').getList();
}
}
})
angular.module("subjectManagement").controller('subjectTeacherAllocationCtrl',
function ($scope, $state, $location, teacher, Restangular) {
var vm = this;
$scope.teacher = {}
vm.teacherList = teacher.plain();
console.log( " vm.teacherList ---> " + vm.teacherList);
});
console output is only vm.teacherList ---> vm.teacherList ---> [object Object],[object Object],[object Object],[object Object],[object Object]我想了解这两者之间的区别(案例1和案例2),以及如何实现,在案例1中打印vm.teacherList,就像案例2一样。
发布于 2016-01-12 19:03:51
Case1
根据文档,getList.$object返回对一个空对象的引用,在完成请求时数据将填充该引用。因此,如果您尝试立即打印数据,您只会看到那个空对象。当您在开发人员控制台中检查网络对象时,您将看到已完成的请求,这就是您看到数据的原因。
案例2
由于您处于“解析”块中,状态在所有请求完成之前不会更改。所以你从雷桑格打来的电话必须在下一步之前打完。当您的控制器加载时,教师是一个完全填充的对象,您可以按照预期使用这些数据。
使案例1类似于案例2
使用Restangular.all().getList返回的承诺并在成功时填充数据。
vm.teacherList = {};
Restangular.all('teacher').getList().then(function success(data) {
vm.teacherList = data;
console.log(vm.teacherList);
});https://stackoverflow.com/questions/34749740
复制相似问题