angularjs: перезагрузить контроллер

0

У меня есть контроллер, который я называю API на MVC. Этот API возвращает мне частичное представление. Это частичное представление связано с моим контроллером, из которого я вызываю API.

Теперь, как только я получу частичный вид назад, я исчезаю из html представления, а затем повторно просматриваю представление.

но мой метод контроллера никогда не запускается, я думаю, потому что контроллер уже запущен.

Вопрос: могу ли я вызвать метод контроллера при его загрузке.

html:

<div id="pageholder">
            <-- here is my view , which I am changing thru API , and I want to re render it, and also want to perform certain controller methods -->
            </div>

ANGULAR:

$http({
    method: 'POST',
    url: url,
    data: {
        config: item,
        parameter: itemParametrs
    }

}).success(function(data, status) {
    $('#pageholder').empty();
    $scope.username="username";
    $('#pageholder').html(data);
});

ПОЖАЛУЙСТА ПОМОГИ!

  • 0
    для рендеринга html вы можете вызвать $ apply, так как вы не используете угловые директивы для манипулирования DOM, который не вызывается .. для повторного рендеринга контроллера у вас может быть функция, которая вызывает некоторую функцию init, означающую после успеха, просто вызовите ваш init функция ... или я думаю, вы могли бы обновить страницу.
Теги:
controller
asp.net-mvc-4

1 ответ

1

Вам нужно скомпилировать этот новый HTML-код. Никакая директива или контроллер не будут отслеживаться Угловым, если вы динамически пишете HTML:

.success(function(data, status) {
  $scope.username="username";

  var $pholder = $('#pageholder');
  $pholder.empty();
  $pholder.html(data);

  // Recompile the HTML so angular can process it
  $compile($pholder)($scope);
});

PS: вам нужно будет получить службу $compile в вашей директиве/контроллере (так же, как вы получите $http)

Ещё вопросы

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