2015-06-18 1 views
0

Я использую функцию http get, чтобы получить массив json из службы. Как я могу установить ответ на контроллер местоположения элемент.Как установить элемент углового контроллера с помощью http get return values ​​

function MainCtrl($http,myService) { 
    this.locations = null; 
    myService.async().then(function(d) { 
     ? = d; 
    }); 
} 

Response d хорошо сформированным (JSON)

+0

введите действующий код, затем спросите неожиданные исключения или поведение – fantarama

ответ

1

Вы просто взять ссылку на текущий контекст, а затем использовать эту переменную ссылкой в ​​функцию обратного вызова

function MainCtrl($http,myService) { 
    var vm = this; 

    vm.locations = []; // initialise properly 
    myService.async().then(function(d) { 
     vm.locations = d; 
    }); 
} 
+0

Спасибо, что это работает. Я отвечу на ваш ответ через 8 минут. – maskapsiz

+0

Сладкий, рад, что я мог бы помочь. Просто помните, когда вы вводите новую функцию в JavaScript, это изменяется. –

0

Существует другой подход к этой проблеме тоже. Я добавил свой «ответ» ради полноты. Также можно связать ссылку с этой ссылкой. Это может быть достигнуто двумя способами, либо используя angular.bind(), либо native javascript bind, чтобы передать эту ссылку.

.: например

function MainCtrl($http,myService) { 
    this.locations = []; // initialise properly 

    myService.async().then(function(d) { 
     this.locations = d; 
    }.bind(this)); 
} 

P.S .: Я пытался редактировать свой ответ и добавить эти решения этой проблемы различных областей, но он был отвергнут. По следующей причине:

Это изменение предназначалось для ответа на автора сообщения и не имеет смысла в качестве редактирования. Это должно было быть написано как комментарий или ответ

Не нажимать на рецензентов, но они, конечно же, не понимают, что я не могу оставлять комментарии с текущим представителем. У меня есть и нет смысла отвечать ответ на вопрос.

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

  • Нет связанных вопросов^_^