angular ng-click ng-show перестал работать

#angularjs #angularjs-ng-click #angularjs-ng-show

#angularjs #angularjs-ng-click #angularjs-ng-show

Вопрос:

У меня есть этот небольшой фрагмент кода:

 <li ng-if="vm.data.Description" ng-click="expand=!expand">{{vm.data.Description}}</li>
<li ng-if="vm.data.LongDescription" ng-show="expand">{{vm.data.LongDescription}}</li>
  

виртуальная машина.данные.Описание и виртуальные данные.Длинное описание содержит значения.

Длинное описание скрыто, но когда я нажимаю на Описание, оно становится видимым. Я переключаюсь таким образом, устанавливая флаг расширения true или false.

Почему этот код не работает??

Ответ №1:

ng-if использует дочернюю область, поэтому вы не можете связать свою примитивную переменную (expand), поэтому, если вы можете просто изменить expand на vm.expand, и это сработает…

и ваш ng-show там не нужен, у вас уже есть ng-if для него…

 <li ng-if="vm.data.Description" ng-click="vm.expand=!vm.expand">{{vm.data.Description}}</li>
<li ng-if="vm.data.LongDescription amp;amp; vm.expand">{{vm.data.LongDescription}}</li>
  

и здесь работает PLUNKER