Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.10.2014, 23:52
Новичок на форуме
Отправить личное сообщение для pik.os Посмотреть профиль Найти все сообщения от pik.os
 
Регистрация: 05.10.2014
Сообщений: 1

UI-Router передача ajax-переменной в контроллер
Есть код:
mainApp.config(function($stateProvider, $urlRouterProvider, $locationProvider ) {
	$urlRouterProvider.otherwise("/err404");
	$stateProvider
		.state('start', {
			url: "/",
			templateUrl: "views/c/search.html",
			controller: 'search'
		})
 . . .
 . . . 

function search($scope,$http){

	$http({method: 'JSONP', url: "http://my_site.com:3000"}).
        success(function(data) {
			$scope.c = data;
        })
}

Если $scope.c присвоить константу вне функции $http, то всё прекрасно работает. Как мне заставить контроллер ждать ответа $http?
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2014, 10:03
Новичок на форуме
Отправить личное сообщение для pr0r0k131 Посмотреть профиль Найти все сообщения от pr0r0k131
 
Регистрация: 02.10.2014
Сообщений: 7

Когда у тебя открывается url: "/", и в стейте прописан контроллер, то контроллер никого ждать не будет.

Но как вариант, попробуй вместо "success" использовать "then". Тогда $http провайдер точно будет ждать.

$http({method: 'JSONP', url: "http://my_site.com:3000"})
    .then(function(data) {
        $scope.c = data;
    },function(err){
        // обработка ошибки
    })
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2014, 23:59
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

Есть свойство resolve у статуса:
Цитата:
An optional map of dependencies which should be injected into the controller. If any of these dependencies are promises, the router will wait for them all to be resolved or one to be rejected before the controller is instantiated.
Ответить с цитированием
  #4 (permalink)  
Старый 16.10.2014, 09:17
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от pik.os Посмотреть сообщение
Есть код:
.........
Если $scope.c присвоить константу вне функции $http, то всё прекрасно работает. Как мне заставить контроллер ждать ответа $http?
Код вполне рабочий, я бы добавил только одну маленькую детальку:
....
function search($scope,$http){

        $scope.c = null;  // добавочка
       
	$http({method: 'JSONP', url: "http://my_site.com:3000"}).
        success(function(data) {
			$scope.c = data;
        })
}

Это нужно, чтобы до получение ответа сервера, значение $scope.c не было 'undefined'. После прихода ответа, полученное значение присвоится $scope.c автоматически (в этом суть сервиса q).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax передача переменной imediasun1 Элементы интерфейса 2 23.10.2013 18:06
Js класс, передача переменной из ajax access defender057 AJAX и COMET 4 26.06.2013 00:14
Передача переменной из js в php, посредством ajax 9xakep Серверные языки и технологии 32 05.05.2012 13:02
построение Графика (передача переменной ajax json) Sadist_dead AJAX и COMET 10 13.08.2011 13:27
Передача переменной из JS в PHP методом ajax skalka jQuery 7 28.08.2010 12:05