我有一个网站,包括两个网页:
设置页面:该页面包含以下JSON内容:
{"Sources":["1","2","3","4"]}
显示系统中所有已知的“资源”网页。只需逐一打印它们。
当我的应用程序加载时,我下载资源页面,并将其保存在$scope.Settings.Sources
的作用域中。
我的AngularJS代码:
$scope.getSettings = function (ID, successCallback, failureCallback)
{
$scope.ID = ID;
$http.get("/sources?ID=" + ID).then(function (response)
{
if (response.status == 200)
{
$scope.Settings = response.data;
successCallback();
}
else
{
failureCallback();
}
});
}
function getSettings_success()
{
// Ready to update the ng-repeat NOW.
}
function getSettings_error()
{
alert('Error');
}
$scope.getSettings(1, getSettings_success, getSettings_error);
现在,当我有$scope.Settings.Sources
准备好之后,我所要做的就是在指定的HTML模板中打印每个来源。由于这个原因,我考虑使用ng-repeat来完成这项任务。大概像这样:
<div ng-init="sources=$scope.Settings.Sources">
<ul>
<li ng-repeat="source in sources">
{{ source }}
</li>
</ul>
</div>
很不幸,这段代码无法运行。这是因为当页面正在加载时,$scope.Settings.Sources
还未准备好。所以,在“sources”页面下载后,ng-repeat必须运行。
这可行吗?如果可以,该如何实现?