2015-02-23 5 views
0

Модифицированный пример работает отлично ПОСЛЕ того, что я изменил значение ввода
- изначально скрыть/показать делает полную противоположность тому, что я хочу? (Привет "")
Нужно ли мне запускать какой-то готовый к работе()?angularJS скрыть/показать изначально

<!doctype html> 
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
<html ng-app> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script> 
</head> 
<body> 
    <div> 
     <input type="text" ng-model="yourName" placeholder="Enter your name"> 
     <hr> 
     <h1 ng-show="yourName == ''">Who ARE you ?</h1> 
     <h1 ng-hide="yourName == ''">Hello "{{yourName}}"</h1> 
    </div> 
</body> 
</html> 
+0

ли вы инициализировать 'yourName' к чему-то в контроллере? Или это = 'undefined'? –

+0

И я не вижу никакого 'ng-app' /' ng-controller' в вашем html –

+0

Только что начал на angularJS сегодня - код выше ВСЕ есть .. – T4NK3R

ответ

2

вы можете использовать ng-init здесь

<input type="text" ng-model="yourName" placeholder="Enter your name" ng-init="yourName = ''"> 

здесь Demo Plunker

ИЛИ Используйте

<div> 
    <input type="text" ng-model="yourName" placeholder="Enter your name"> 
    <hr> 
    <h1 ng-show="!yourName">Who ARE you ?</h1> 
    <h1 ng-hide="!yourName">Hello "{{yourName}}"</h1> 
</div> 

Demo Plunker

проблема

yourName Область видимости переменной undefined до первого изменения этого значения. если вы измените значение один раз, тогда есть переменная области видимости, которая называется yourName. вы можете увидеть, будете ли вы вводить и затем отступать от текстового поля Who ARE you ?, потому что в этот момент есть переменная, называемая yourName.

вы можете инициализировать переменную с помощью ng-init, а затем в области есть переменная, называемая yourName. поэтому yourName не undefined.

в качестве второго примера !yourName, если yourNameundefined или '' затем !yourName становятся истинными.

+0

Ahh «! YourName» - так это то, что они понимают под «правдой» при оценке:) – T4NK3R

+0

И ng-init заменяет значение = «blabla» - Угадайте, что этот угловой бизнес меняет много вещей:) – T4NK3R

0

Это потому, что по умолчанию yourName является undefined. Попробуй вот так.

<h1 ng-hide="yourName == '' || yourName == undefined ">Hello "{{yourName}}"</h1> 

<!doctype html> 
 
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
 
<html ng-app> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script> 
 
</head> 
 
<body> 
 
    <div> 
 
     <input type="text" ng-model="yourName" placeholder="Enter your name"> 
 
     <hr> 
 
     <h1 ng-show="yourName == ''">Who ARE you ?</h1> 
 
     <h1 ng-hide="yourName == ''|| yourName == undefined ">Hello "{{yourName}}"</h1> 
 
    </div> 
 
</body> 
 
</html>

+0

Извините - 1 минута поздно, с тот же ответ (минус ng-init) – T4NK3R

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