当我的 ng 页面加载包含下面的 ng-repeat 标记时,它会在填充迭代器之前呈现 IMG 标记,但由于不存在 src 值,因此会为部分 src 生成 404。
<div ng-repeat="item in preview_data.items">
<h4>{{item.title}}</h4>
<a href="http://www.youtube.com/watch?v={{item.id}}" target="_blank"><img src="{{item.thumb}}" /></a>
</div>
然后我的控制器启动并使用正确的视频列表填充它。
在控制器准备好数据之前,如何阻止 HTML 被渲染?
该页面由以下路由调用:
app.config(function ($routeProvider, $locationProvider ) {
$locationProvider.html5Mode(true);
console.log('config');
$routeProvider.when("/", {
templateUrl: "/templates/createFeed.html",
controller: "CreateFeedController"
});
});
它调用工厂从后端 api 获取要预览的视频列表:
app.controller("CreateFeedController", function ($scope, $route, $sce, Preview) {
var keywords = decodeURIComponent($route.current.params.keywords);
$scope.preview_data = {
keywords: keywords
}
//pass parameters to web preview API
Preview.get(keywords, function (data) {
$scope.preview_data.items = data;
});
});
app.factory('Preview', function ($http) {
return{
get: function (keywords, next) {
$http({method: 'GET', url: '/api/preview/', json:true,
params: {keywords: keywords}}
).success(function (data) {
// prepare data here
//console.log(data);
next(data);
});
}
};
});