LINUX.ORG.RU

Не работает обновление ngIf

 


0

2

Почему то не вешается слушатель на ng-if html:

   <div ng-if="vm.user == null">
     User not found
   </div>
   <div ng-if="vm.user != null">
     {{vm.user.name}}
   </div>

controller:

   angular
      .module('app.module')
      .controller('UserCtrl', UserCtrl);
UserCtrl.$inject = ['UserService'];
function UserCtrl(UserService) {
    var vm = this;
    vm.user = null;

    activate();
    function activate() {
       UserService.get(onLoad);
    }
    function onLoad(user) {
      vm.user = user;
    }
}

При этом {{vm.user.name}} нормально обновляется.

Что я делаю не так?

Перемещено true_admin из development


Ответ на: комментарий от kote

Посмотрел ещё раз код. А {{vm.user.name}} правда «нормально обновляется»? Во-первых, vm должна входить в $scope. А судя по коду, это локальная переменная. Во-вторых, $scope в контроллер вообще не передаётся. Должно быть что-то типа:

UserCtrl.$inject = ['$scope', 'UserService'];
function UserCtrl($scope, UserService) {
    $scope.vm = {};// зачем this, кстати?
    $scope.vm.user = null;

    activate();
    function activate() {
       UserService.get(onLoad);
    }
    function onLoad(user) {
      $scope.vm.user = user;
    }
}
Первый комментарий также актуален, «== null» не верно.

igor87 ()

первый коммент похож на правду.

попробуй отключить activate и посмотреть ручками что у тебя в vm

kelyar ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.