我的AngularJS应用程序有问题。在我的html视图中,我有一个包含JavaScript对象的列表。
<div ng-init="initWeek()" ng-controller="TableController">
<div id="TaskImages"> <div ng-repeat="task in taskList"> <div id="TaskImg" ><br> {{task.title}}<br>{{task.start}} </div> </div></div>
我使用Jquery/Ajax设置taskList,它从服务器获取所有的任务对象。
function getTaskFromServer() {
$.ajax({
type : "POST",
url : "main_page",
success : function(data) {
var taskList = $.parseJSON(data);
week[0].push(taskList[0]);
},
});
我的控制器是这样的:
$scope.initWeek = function() {
getTaskFromServer();
};
$scope.taskList = week[currentlySelectedDay-1];
当我加载应用程序时,列表"周"包含对象,但在html视图中可以看到文本。
我认为$scope。taskList在列表"week"之前加载。
例如,当我使用:
$scope.initWeek = function() {
getTaskFromServer();
alert(week[0].lenght);
};
$scope.taskList = week[currentlySelectedDay-1];
站点显示警报,当我点击Ok时,taskList中的文本是一个网站。
由于它是异步操作,您必须在ajax回调中设置taskList:
function getTaskFromServer() {
$.ajax({
type : "POST",
url : "main_page",
success : function(data) {
var taskList = $.parseJSON(data);
week[0].push(taskList[0]);
$scope.taskList = week[currentlySelectedDay-1];
},
});
}
如果你能用$http代替jquery ajax调用,那就更好了。
希望对你有帮助。