Я использовал контроллер, чтобы использовать api, который работает нормально, но я хочу использовать его с использованием фабрики или службы и пробовал это много раз, но, возможно, у меня нет такого понимания. Я в настоящее время беру курс для AngularJs, поэтому я сожалею, если я спрашиваю что-то глупое.
Также было бы здорово, что любой может сказать мне, что лучше всего использовать фабрику или услугу или что-то еще.
Таким образом, он отлично работает:
HTML:
<div ng-controller="PromiseCtrl">
<li ng-repeat="post in posts" >
{{post.link}}<br/>
{{post.title}}
</li>
</div>
контроллер:
.controller('PromiseCtrl', ['$scope', '$http', function($scope, $http) {
$http.get('http://www.zemtv.com/wp-json/wp/v2/posts').then(function(value) {
$scope.posts = value.data;
});
}]);
Здесь я столкнулся с проблемой:
HTML:
<div ng-controller="PromiseCtrl">
<li ng-repeat="post in posts" >
{{post.link}}<br/>
{{post.title}}
</li>
</div>
контроллер:
.controller('PromiseCtrl', ['$scope', '$http', function($scope, $http) {
$http.get('http://www.zemtv.com/wp-json/wp/v2/posts').then(function(value) {
$scope.posts = value.data;
});
}])
Фабрика: (Я не использую это правильно, я думаю)
angular.module('confusionApp')
.factory('menuFactory', function() {
$http.get('http://www.zemtv.com/wp-json/wp/v2/posts').then(function(value) {
var posts = value.data;
});
});
Я не тестировал ничего из этого, но это было так:
angular.module('confusionApp')
.factory('menuFactory', function() {
return {
getPosts: function () {
return $http.get('http://www.zemtv.com/wp-json/wp/v2/posts')
}
}
});
Затем от контроллера:
.controller('PromiseCtrl', ['$scope', '$http', 'menuFactory', function($scope, $http, menuFactory) {
menuFactory.getPosts().then(function(response){
$scope.posts = response.data;
});
}]);
Было бы неплохо прочитать, что больше касается использования услуг и того, как они вводятся и используются контроллерами.