2016-03-22 3 views
2

Я получаю данные через get запрос. Теперь, щелкнув по кнопке, я хочу открыть мода angular material и показать эти данные. Вот мой код:Получить данные в Угловом материале мода

$scope.openModal = function(event) { 
    $http.get('/my/api', null).then(
     function(data) { $scope.arr=data; }, 
     function(err) { console.log(err); } 
    ); 

    $mdDialog.show({ 
     templateUrl: '/app/modal.html', 
     parent: angular.element(document.body), 
     targetEvent: event, 
     clickOutsideToClose: true, 
    });  
} 

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

+0

Не могли бы вы конкретно указать, в чем проблема, вы говорите, что он работает нормально, если вы сделаете запрос на получение вне обработчика щелчка, можете ли вы определить его больше, чтобы его было легко понять. Спасибо. –

+0

Является ли проблема, что модальная загружается до того, как обетование разрешилось? Или это совсем другое? – Lex

+0

Вы хотите использовать 'resolve' для этого. –

ответ

0

Если единственная проблема в том, что ваша arr переменная не имеет ожидаемого результата, то, скорее всего, потому что параметр на функцию успеха .then() является объектом, который содержит данные в .data собственности. Таким образом, вы должны использовать:

$http.get('/my/api', null).then(
    function(response) { $scope.arr = response.data; }, 
    function(err) { console.log(err); } 
); 

Если необходимо задержать загрузку модального до вызова вашего API не будет решен, то вы можете просто поместить этот код в ту же функцию, в которой вы устанавливаете $scope.arr.

+0

на console.log (arr), я получаю данные, но шаблон html модальности получает только переменную области видимости значения вне функции openModal – nyxem1

Смежные вопросы