angularjs - проблема с обратным вызовом в bootbox - PullRequest
0 голосов
/ 19 мая 2019

У меня есть представление с двумя вкладками, в первой вкладке у меня есть текстовый ввод commentaireLien.

В контроллере, когда я вхожу в загрузочный ящик для подтверждения обратного вызова, ввод commentaireLiens не обновляется (с помощью «теста») в браузере.
Если перейти в другую вкладку в представлении и затем перейтивернуться на вкладку, которая содержит commentaireLiens, затем он обновляется.

Я не понимаю, почему.

bootbox.confirm({
    size: "small",
    message: "Voulez-vous valider le CV ?",
    callback: function (result) {
        if (result) {
            vm.commentaireLiens ="test";
        } 
    }
})
<input type="text" class="form-control" name="commentaireLiens"
       id="field_commentaireLiens"
       ng-model="vm.commentaireLiens"
/>

1 Ответ

1 голос
/ 19 мая 2019
bootbox.confirm({
    size: "small",
    message: "Voulez-vous valider le CV ?",
    callback: function (result) {
        if (result) {
            vm.commentaireLiens ="test";
            $scope.$apply();
        } 
    }
})

AngularJS изменяет обычный поток JavaScript, предоставляя собственный цикл обработки событий.Это разбивает JavaScript на классический и AngularJS контекст выполнения.Только операции, которые применяются в контексте выполнения AngularJS, выиграют от привязки данных AngularJS, обработки исключений, отслеживания свойств и т. Д. Вы также можете использовать $apply() для входа в контекст выполнения AngularJS из JavaScript.

Имейте в виду, что в большинстве мест (контроллеры, сервисы) $apply уже был вызван для вас директивой, обрабатывающей событие.Явный вызов $apply необходим только тогда, когда реализует пользовательские обратные вызовы событий или работает со сторонними обратными вызовами библиотек .

Для получения дополнительной информации см.

...