Angular: как автоматически выполнить рендеринг при обнаружении изменения переменной? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть контроллер с областью действия. Есть вызов API, который возвращает некоторые данные, и я сохраняю их в области видимости. Предполагается, что мой html проверяет, есть ли что-то внутри этой переменной, и отображает вещи по-другому.

HTML так же прост (но, конечно, не точный сценарий), как

<div ng-if='!ctrl.$scope.some_msg'>
    <p>Some display, contain is not important</p>
    <button on-click=some_func()></button>
</div>
<div ng-if='ctrl.$scope.some_msg'>
    <p>{{ctrl.$scope.some_msg}}</p>
</div>

JS у меня есть

some_func() {
    this.callAPI().then( res => {
        this.$scope.msg = res;
    });

Теперь эта функция работает, как задумано, и MSG действительно загружается в $scope.msg, тестируется с использованием console.log, но мой HTML не обновляется, пока я не выполню какое-либо другое действие. В этом случае эта кнопка останется там после нажатия, и я должен нажать еще раз, чтобы изменения на моей веб-странице произошли. Почему это?

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