2015-05-12 3 views
4

Я пытаюсь создать приложение Angularjs, и у меня возникают проблемы с моим контроллером.

'use strict'; 

/* Controllers */ 

angular.module('myApp.controllers', []). 
    controller('AppCtrl', function ($scope, $http) { 

    }). 
    controller('indexCTRL', function ($scope) { 
    $http.get('/api/frettir'). 
    success(function(data, status, headers, config) { 
     $scope.posts = data; 
    }); 

    }); 

Но когда я запустил его, появляется ошибка, указывающая, что $ http не определен. Что я могу улучшить?

ответ

6

Вам нужно впрыскивать $http службу в контроллерах, которые вы используете его. Мне нравится этот очень точный inline syntax, который позволит избежать проблем, если ваш код проходит через мини-инструменты.

controller('indexCTRL', ['$scope', '$http', 
    function($scope, $http) { 
    //...your code 

    } 
]) 
+1

Это лучший способ сделать это честно. Если вы создадите массив, последний, когда вы решите его минимизировать, вам не придется возвращаться и делать это с каждым контроллером. Я знаю это по опыту: X lol –

4
'use strict'; 

/* Controllers */ 

angular.module('myApp.controllers', []). 
    controller('AppCtrl', function ($scope, $http) { 

    }). 
    controller('indexCTRL', function ($scope, *$http*) { 
    $http.get('/api/frettir'). 
    success(function(data, status, headers, config) { 
     $scope.posts = data; 
    }); 

    }); 
+0

просто необходимо ввести $ http в контроллер –

+0

Почему это запрещено? Это решает проблему ... A +1 от меня. – Shomz

+0

Я не знаю, как буквально обряд, когда я нажал добавить ответ, на нем был -1. –

2

Вы должны добавить его в качестве зависимости от каждого контроллера, который использует его:

controller('indexCTRL', function ($scope, $http) { 
Смежные вопросы