當我的ng頁面加載下面包含ng-repeat標記時,它會在填充迭代器之前呈現IMG標記,但由於沒有src值,因此會生成404 for部分src。Angular ng-repeat在填充迭代器之前呈現模板
<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);
});
}
};
});
看看[SO這個問題] [1]。你可以使用ngClock或使用ng-bind。 [1]:http://stackoverflow.com/questions/20871185/angularjs-not-loading-on-chrome – Ashish