Я сделал вызов JSON, используя в контроллере, но хочу использовать фабрику (angularjs)

0

Я использовал контроллер, чтобы использовать 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;
        });
});
  • 2
    взгляните на этот вопрос. Это все объясняет. stackoverflow.com/questions/15666048/...
  • 0
    где используется фабрика?
Теги:

1 ответ

0
Лучший ответ

Я не тестировал ничего из этого, но это было так:

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;
    });
}]);

Было бы неплохо прочитать, что больше касается использования услуг и того, как они вводятся и используются контроллерами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню