Как исправить нг-если не реагирует? - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь отобразить ссылку <a href> при выполнении условия, но ссылка никогда не появляется.

Я уже пытался изменить позицию (вход / выход <div controller>) и тег элемента, содержащего ng-if (span, div, ul ...),Этот вид кода работает на другом HTML, который у меня есть, поэтому моя версия на Angular выглядит нормально.

Вот форма, в которой я вызываю контроллер:

<div ng-controller="userRole">
      <form ng-submit="setProfile()">
        <select ng-model="userRole"
                ng-options="role for role in roles">Role</select>
        <input type="text"
                ng-model="userName"
                placeholder="Nom"></input>
        <input type="submit"
               value="Valider"></input>
      </form>
    </div>

Условие сразу после:

<span ng-if="user.isSetup">
      <a href="srsApp.html">Accès aux cours</a>
    </span>

И фактический контроллер:

      var app = angular.module('srsApp', []);
      app.controller('userRole', function($scope) {
        $scope.roles = ['Professeur', 'Élève'];
        $scope.user = {role:'', name:'', isSetup: false};

        $scope.setProfile = function() {
          if ($scope.userName !== '' && $scope.userRole !== '') {
            $scope.user.role = $scope.userRole;
            $scope.user.role = $scope.userName;
            $scope.user.isSetup = true;
            $scope.userRole = '';
            $scope.userName = '';
          }
        };
      });
    </script>

Я ожидал, что ссылка появится, как только я отправлю форму с ролью и именем, но ссылка останется скрытой.Нет ошибки от моего терминала Firefox, и я знаю, что он входит в функцию, потому что заполнители повторно инициализируются.

1 Ответ

1 голос
/ 26 мая 2019

Как упоминалось @AnuragSrivastava, <span> должно быть в <div ng-controller="userRole">. Как я уже сказал, я пытался это сделать, но предыдущие обстоятельства (синтаксические ошибки НЕ выделены терминалом) не позволили этому сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...