Я борюсь с некоторыми $scope
переменными в моем приложении angularjs.
Я хочу визуализировать «модули», которые имеют серверные «каналы», и эти каналы могут быть скрытыми/видимыми. Я хочу скрыть каналы во всплывающем канале, дважды щелкнув по этому каналу.
угловой контроллер фрагмент кода:
$scope.dblclick = function(chid) {
$scope.chclicked = chid;
$scope.hidden = $scope.moduledata.channels[chid].hidden !== 0 ? true : false;
$scope.popupvisible = true;
};
$scope.popupok = function() {
$scope.moduledata.channels[$scope.chclicked].hidden = $scope.hidden === true ? 1 : 0;
$scope.popupvisible = false;
};
$scope.popupcancel = function() {
$scope.popupvisible = false;
};
$scope.closePopup = function() {
$scope.popupvisible = false;
};
Перед показом всплывающего окна, я поставил (я стараюсь) текущее значение 'hidden'
и channel-id
, чтобы иметь доступ к ним при закрытии всплывающего окна.
Флажок в выпадающем списке ng-model="hidden"
.
Проблема в том, что скрытые значения в moduledata
не обновляются и не изменяются, и $scope.hidden
всегда сохраняет последнее значение этого флажка во всплывающем окне - для всех каналов.
$scope.chclicked
работает нормально, хотя.
Я сделал Plunk для визуализации моей проблемы.
@Appeiron Говорят, в [Угловая JS docum entation] (https://docs.angularjs.org/api/ng/directive/ngInclude), что эта директива создает новую область и выполняется на уровне приоритета 400. –
Хорошо, это сработает. Но теперь он прячет/скрывает мой канал немедленно. Я хочу применить изменения только при нажатии «ОК» – Draz
@Draz Я обновил Plunker. Пожалуйста, посмотри на это. –