我的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];
当我加载应用程序时,列表“week”包含对象,但在html视图中可以看到文本。
我认为$ scope.taskList是在列表“week”之前加载的。
例如,当我使用:
$scope.initWeek = function() {
getTaskFromServer();
alert(week[0].lenght);
};
$scope.taskList = week[currentlySelectedDay-1];
网站显示提醒,当我点击“确定”时,来自taskList的文本就是一个网站。
答案 0 :(得分:1)
由于它是异步操作,因此必须在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调用,那会更好。
希望有所帮助。