2016-11-01 1 views
0

У меня есть DIV следующегоСкрыть DIV, когда выполняется функция нг скрытия и установить истинный

HTML

<div ng-hide="checkStatus()">Show only if checkstatus is false</div> 

Javascript

$scope.data = 23; 

$scope.checkStatus() { 
    if($scope.data === undefined){ 
     return false; 
    } 
    else return true; 
} 

Если я выполнить это, он говорит, данные не определены. Может ли кто-нибудь дать мне знать, как передать эту переменную функции checkStatus(). Также эта переменная данных является динамической и может часто меняться.

Я хочу, чтобы div следил за этой переменной данных и отображал или скрывал в зависимости от ее значения.

Может кто-нибудь дать мне знать, как этого достичь.

+0

Изменить javascript на: $ scope.data = true; $ scope.checkStatus() { return $ scope.data; } – shivas

+0

В фрагменте кода, который вы предоставили 'checkStatus', не имеет правильного синтаксиса JS и недействителен. Это ошибка копирования? Это '$ scope.checkStatus = function() {' возможно? –

ответ

1

Просто используйте переменную области действия непосредственно в ng-hide выражение:

<div ng-hide="data !== undefined"> 
    $scope.data is undefined<br> 
</div> 

<div ng-show="data === undefined"> 
    Maybe you should do something about that!! 
</div> 

The ng-hide и ng-show директивы вычисляет выражение AngularJS каждый переваривать цикла и показывает или скрывает элемент, если выражение является правдивым.

DEMO on JSFiddle.

0

Изменение JavaScript для:

$scope.data = true; 

$scope.checkStatus = function() { 
return $scope.data; 
} 
+0

привет Шивас, не могли бы вы также объяснить причину. Я новичок в угловой. почему бы определить переменную как работу $ scope.data и данные var wont работать –

+0

В вашем исходном коде данные var недоступны в области $ scope.checkStatus(), когда вы вызываете checkStatus() из вашего html – shivas

+0

Действительно, это как замыкания в JS работают. Более того, вам не нужна функция. Просто присвойте свой флаг некоторому свойству в объекте $ scope и используйте угловую двустороннюю привязку данных. – TheOpti

Смежные вопросы