2014-12-03 5 views
0

У меня возникли проблемы с попыткой отразить мои изменения в $rootScope. Как я понимаю (обратите внимание, что я новичок в angular), $rootScope видна через controllers. То, что я пытаюсь сделать, - это обновить значение в $rootScope и попытаться прочитать это значение на моей странице html.

Проблема в том, что изменения применяются к $rootScope, что не отражается на моем взгляде. Ниже приводится код

У меня есть div, который я хочу, чтобы показать/скрыть зависимости от значения

#view 
<div ng-hide="{{logged}}"> 
    // this should visible only if the logged is true 
</div> 



#controller1 I set the rootscope to false 
$rootScope.logged = false; // this makes the view hidden 


#controller2 I set the rootScope to true 
$rootScope.logged = true; 
$rootScope.$apply(); 

Но что делает $rootScope.logged = true не делает вид видимым. Мои вопросы:

1 - Что я могу ошибаться?

2 - Какой самый угловой способ совершить такое?

+2

'ng-hide =" logged "'? –

+0

@NaeemShaikh, спасибо, что сделал трюк :) – sameera207

ответ

1

Нет необходимости использовать {{ в вашем шаблоне html.

#view 
<div ng-hide="logged"> 
    // this should visible only if the logged is true 
</div> 

Этого достаточно.

+0

спасибо, что он работает, и я мог удалить «$ rootScope. $ Apply()», а теперь все хорошо :) – sameera207

+0

Вам нужно всего лишь использовать $ apply, если вы обновляете из-за углового контекста (если мои знания служат правильными), например, jquery, если вы находитесь в объекте области, вам не нужно называть применение – Lewis

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