У меня есть простой контроллер с сервисом как зависимость. Я пытаюсь заполнить область, как только будет разрешено обещание resource
. Когда i console.log()
область, она показывает мне правильную область с данными, но мой ng-repeat не работает. Также я использую угловое расширение chrome
и на этой области (posts)
не покажет никаких данных. Что мне не хватает?Угловые ресурсы не заполняют область
Контроллер:
function TimelineController($scope,TimelineService)
{
$scope.posts = [];
$scope.getPosts = function(wall_type,wall_id) {
TimelineService.getPosts(wall_type,wall_id).$promise.then(function(result){
$scope.posts = result.response;
console.log($scope.posts); // it show correctly the data on console
});
}
}
Сервис
function TimelineService($resource) {
var resource = $resource('/timeline/:postId',
{postId:"@id"}
);
return {
getPosts: function(entity,id)
{
// /timeline?entity=user&id=3 (example url)
return resource.get({entity:entity,id:id});
}
}
};
Ответ от сервера:
{success:true, response:[...]}
Edit:
Я использую директиву, чтобы отобразить шаблон с в ng-repeat
:
function timeline() {
return {
restrict: 'E',
replace: true,
scope: {
type: '@',
ids: '@',
postime: '&'
},
templateUrl:"/js/templates/timeline/post-tmpl.html"
}
};
Итак, на мой взгляд:
<div class="col-md-8" ng-controller="TimelineController">
<timeline type="user" ids="8" postime="getPosts(wall_type,wall_id)"></timeline>
</div>
и короткой версии моего шаблона:
<ol class="timeline" ng-init="postime({wall_type:type,wall_id:ids})">
<li ng-repeat="post in posts">
{{post.poster.fullname}}
</li>
</ol>
А где же вид? особенно упоминается 'ng-repeat' – Cherniv
Извините, я редактирую свой пост – Fabrizio