Показать возвращенный результат из контроллера в шаблоне

0

Я вызываю функцию из HTML, и я хочу отобразить возвращенный результат.

Вот html-код:

 <td ng-init="'damages = list.getDamageEvents(soData.damagesId)'">
     {{damages}}
 </td>

вот функция в контроллере:

self.getDamageEvents = function (reviewsId) {
    var t;
    return $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId).then(function (result) {
         t=result.data;
    });
    return t
}

функция getDamageEvents() возвращает некоторую строку.

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

EDIT: Мне нужно получить доступ к функции getDamageEvents в качестве области выделения.

Любая идея, почему я не могу увидеть результат?

Теги:

3 ответа

2
Лучший ответ

$ http.get возвращает обещание, поэтому вы не можете вернуть результат в конце вашей функции getDamageEvents, вместо этого вы должны повлиять на результат на переменную с именем "убытки" в обратном вызове успеха следующим образом:

self.getDamageEvents = function (reviewsId) {
   $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId)
   .then(function (result) {
     self.damages = result.data;
   });
}

Затем вы можете получить доступ к переменной ущерба в своем представлении

2

Ваша функция, восстанавливающая данные, должна установить $scope.damages.

self.getDamageEvents = function (reviewsId) {
    var t;
    return $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId).then(function (result) {
         t = result.data;
         $scope.damages = t;
    });
    return t;
}

Не знаю ваш полный код, поэтому я не удаляю return t; но я думаю, вам это не нужно.

  • 1
    Переменная t кажется бесполезной, я думаю, что автор создал ее, чтобы сохранить конечный результат.
  • 0
    чтобы использовать изолированную область, вы можете сделать self.damages = result.data
1

Когда вы это сделаете:

{{damages}}

Угловое будет проверять переменную имени "убытки" в вашем объеме. Итак, у вас есть переменная с этим точным именем в области вашего контроллера? То есть:

$scope.damages = ...

(Предполагая, что вы не используете синтаксис controllerAs).

  • 0
    Нет, я не. Но я хочу использовать область видимости изолировать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню