使用Anguar UI的路由器,我已經配置了以下狀態:爲什麼我的ng-repeat指令創建一個無效的HTTP請求?
angular.module('foos').config(['$stateProvider',
function($stateProvider) {
$stateProvider.
state('seeFoos', {
url: '/foos',
templateUrl: 'modules/foos/client/views/list-foos.client.view.html',
controller: 'FoosController',
resolve: {
initialData : function(Foos) {
return Foos.query();
}
}
});
}
]);
在我看來,我用NG-重複通過從服務獲取圖像名稱加載一些圖像。
<section>
<div class="row">
<div class="col-xs-12 col-sm-6 top15"
ng-repeat-start="foo in bar">
<h4 ng-bind="foo.name"></h4>
<div class="row">
<a href="{{foo.link}}">
<img alt="{{foo.name}}" src="modules/foos/client/img/{{foo.imgName}}" class="col-xs-4" />
</a>
</div>
</div>
<div class="clearfix" ng-if="$index%2==1"></div>
<div ng-repeat-end=""></div>
</div>
</section>
注意,我保證Foos.query()模板加載之前解決。然後,控制器加載結果bar
在scope
angular.module('foos').controller('FoosController', ['$scope', '$stateParams', '$location', 'Foos', 'initialData',
function($scope, $stateParams, $location, Foos, initialData) {
$scope.bar = initialData;
}
]);
一切正常,除返回404錯誤以下額外的HTTP GET:
GET /modules/foos/client/img/%7B%7Bfoo.imgName%7D%7D
我不明白爲什麼一旦我在狀態配置上添加resolve
選項,就會生成請求。
只需使用['ng-src'](https://docs.angularjs.org/api/ng/directive/ngSrc)而不是'src'。另外,'Foos.query()'是'$ resource'動作,因爲如果是這樣,你的'resolve'需要一些改動 – Phil
啊,不知道ng-src,我會檢查出來。是的,Foos.query()是一個$ resouce動作。 – Dan