Это проблема сокрытия данных, вызванная тем, что директива ng-controller
создает дочернюю область.
Вместо того, чтобы устанавливать свойство области напрямую, установите свойство объекта в родительской области.
<div ui-content-for="title">
<span>Page Title</span>
<span><i ng-click="help={isHelpVisible: true}" class="fa fa-question-circle"></i></span>
</div>
<div ng-controller="InventoryController as inventory">
<div class="scrollable">
<div ng-show="help.isHelpVisible" class="alert alert-info alert-dismissible">
<a class="close" ng-click="help.isHelpVisible=false;"
aria-label="close" data-dismiss="alert">×</a>
Help message is here.
</div>
</div>
</div>
Обычно наследование области происходит просто ... до тех пор, пока вам не потребуется двухстороннее связывание данных .Если вы попытаетесь выполнить привязку к примитиву (например, число, строка, логическое значение) в родительской области изнутри дочерней области.Это не работает так, как ожидает большинство людей.Дочерняя область действия получает свое собственное свойство, которое скрывает / скрывает родительское свойство с тем же именем.
Ваш обходной путь - определить объекты в родительском объекте для вашей модели, а затем обратиться к свойству этого объекта в дочернем объекте.
Для получения дополнительной информации см.