2015-03-30 2 views
0

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

В настоящее время моя проблема заключается в попытке сделать $ http-вызов от контроллера. Вот мой текущий код:

angular 
    .module('login', []) 
    .controller('LoginController', ['$scope', '$http', 'supersonic', function($scope, $http, supersonic) { 
     // Controller functionality here 
     $scope.login = function() { 
      supersonic.logger.debug('before ajax'); 

      $http.post('http://server/api/user/login', { 
       username: $('#username').val(), 
       password: $('#password').val() 
      }).error(function() { 
       console.log('error'); 
       supersonic.logger.debug('Error'); 
      }).success(function() { 
       console.log('success'); 
       supersonic.logger.debug('Success'); 
      }); 

      supersonic.logger.debug('after ajax'); 
     } 
    }]); 

Я признаю, что я новичок в этом, но я читал много документации и побродили по Интернету, пытаясь различными способами вводить $ HTTP и т.д., не повезло. Этот код приведет к ошибке «неизвестный поставщик: сверхзвуковойПроводитель».

Если я исключаю сверхзвуковой из инъекции, то сверхзвуковой параметр не определен.

Даже если я исключаю сверхзвуковую инъекцию и прокомментирую строки сверхзвукового.logger, строка $ http генерирует ошибку «$ is not defined».

Получение этих ошибок от хром-отладчика через usb, если это имеет значение.

Оцените справку по этому вопросу.

+0

Я не очень знаком со сверхзвуковыми рамками, но обе ошибки будет предположить, что исходный код который обеспечивает сверхзвуковой, и я предполагаю, что jquery недоступен в том контексте, в котором работает код. Поэтому сначала догадаться, что это какая-то проблема с инициализацией. Вам нужно установить, какие библиотеки конкретно использовать, или сверхзвуковой уход за этим для вас? – orbitbot

+1

Похоже, вам не хватает инъекции в ваш 'module'. Кроме того, вы, кажется, используете сочетание угловых и JQuery здесь, вы можете посмотреть «угловой способ» доступа к данным, '$ ('# username')' это JQuery. – Claies

+0

более чем вероятно, порядок скриптов на вашей HTML-странице неверен; можете ли вы опубликовать часть своей страницы, где вы загружаете свои сценарии для просмотра? – Claies

ответ

2

следующий код, кажется, сделать трюк, дает мне доступ к $ HTTP и сверхзвуковым в контроллере

angular 
.module('login', ['supersonic']) 
.controller('LoginController', function($scope, supersonic, $http) { 
});