我的控制器有以下代码:
app.controller("consoleCtrl", function($scope,$http,loginFactory){
$scope.emp = [];
//Load logged in employee data:
loginFactory.bootConsole().success(function(data){
console.log("Data retrieved from servlet: " + data);
$scope.emp = data;
});
console.log("Data stored in variable: " + $scope.emp);
}
和我工厂的这个功能:
bootConsole: function(){
return $http.post("http://localhost:8080/EmployeeAngular/Console");
}
当我在工厂中运行bootconsole函数时,数据会被正确检索,但它不会将其加载到变量$ scope.emp中。有没有办法在视图渲染上加载一个函数?我尝试使用ng-init,但这没有帮助。
观点:
<body ng-controller="consoleCtrl">
....
<div id="proPic">{{personal.img}}</div>
<div id="name">{{personal.fname}} {{personal.lname}}</div>
<div id="add1">{{personal.street}}</div>
<div id="add2">{{personal.city}}, {{personal.state}} {{personal.zip}}</div>
<div id="email">{{personal.email}}</div>
<div id="role">{{personal.role}}</div>
答案 0 :(得分:0)
您的视图也没有引用emp
中的任何$scope
属性,但我认为阻止您的是您异步获取数据,因此即使您将其视图也未更新在$scope.emp
解决这个问题的一个简单方法是在回调中应用范围,以便更新视图:
//Load logged in employee data:
loginFactory.bootConsole().success(function(data) {
console.log("Data retrieved from servlet: " + data);
// Run an angular digest cycle to properly update the view
$scope.$apply(function() {
$scope.emp = data;
console.log("Data stored in variable: " + $scope.emp);
});
});