2015-06-03 5 views
1

Так что я, скажу:

$scope.errorMessage = "error1"; 
$scope.addCardModal = $modal.open({ 
    animation: true, 
    templateUrl: 'pages/templates/modals/modal.html', 
    size: "lg", 
    scope: $scope 
}); 

$scope.checkError = function() { 
    $scope.errorMessage = "another error"; 
} 

И в моем шаблоне modal.html у меня есть:

<div ng-click="checkError()">Check Error</div> 
<div ng-show="errorMessage">{{ errorMessage }}</div> 
<div ng-click="errorMessage = false">Close</div> 
  • Когда я загружаю свою модальность, ошибка сообщения показывают, как это предполагается.
  • Когда я нажимаю Закрыть, сообщение об ошибке скрывается, как предполагается.
  • Однако, когда я нажимаю Check Error, $scope изменяет, но не переводит обратно в модальный.

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

ответ

2

Попробуйте:

$scope.errorMessage = "error1"; 
$scope.addCardModal = $modal.open({ 
    animation: true, 
    templateUrl: 'pages/templates/modals/modal.html', 
    size: "lg", 
    scope: $scope 
}); 

$scope.checkError = function() { 
    $scope.errorMessage = "another error"; 
} 

$scope.toggleError = function(){ 
    $scope.errorMessage = ""; 
} 

HTML:

<div ng-click="checkError()">Check Error</div> 
<div ng-show="errorMessage">{{ errorMessage }}</div> 
<div ng-click="toggleError()">Close</div> 

Я добавил функцию toggleError(), так что вы опорожнить строку ErrorMessage.

+0

Спасибо! Не уверен, почему это сработало, но это произошло :) – bryan

1

Вы пробовали следующее:

$scope.checkError = function() { 
    $scope.errorMessage = "another error"; 
    $scope.$apply(); 
} 

Возможно $ дайджеста не срабатывает.

EDIT: Проблема не в $ digest, но это касается различных областей, которые изменяются. Когда модальный создан, ребенок $ Прицел поручены ему Угловое, поэтому при нажатии на эту кнопку:

<div ng-click="errorMessage = false">Close</div> 

новая переменная «ErrorMessage» создается в рамках модальной. Следовательно, даже если в переменной errorMessage есть обновления в родительской области, модальный будет уделять приоритет errorMessage в своей области.

+0

У меня, это не работает. – bryan

+2

Просто выдумал, почему solid_luffy является правильным и причина, по которой он работает, потому что он вызывает toggleError, который изменяет значение в правой области, Вместо этого вы создавали переменную в модальной области и не изменяли переменную справа scope (область управления) –

+0

Спасибо за объяснение! Это делает общий смысл – bryan