Угловое значение JS, установленное для объекта щелчка в ng-repeat

0

У меня есть ng-repeat, который выполняет итерацию объекта:

{
"id": 1,
"title": "Lorem Ipsum",
"base_text": "Lorem ispum",
"read_more_text": "lorem ipsum",
"show_details": false,
"button_label": "Read More",
"button_link": "",
"image": ""
},

Внутри ng-repeat в html есть кнопка, которую я хочу переключить на значение свойства show_details.

Итак, у меня есть обработчик ng-click:

<div class="hero-item" ng-repeat="h in dash.heroItems">
    <div>
      <h3>{{h.title}}</h3>
      <p>{{h.base_text}}</p>
      <p ng-if="h.show_details">{{h.read_more_text}}</p>
    </div>
    <div>
      <button ng-click="dash.showHeroDetails(h.id)">{{h.button_label}}</button>
    </div>
  </div>

Поэтому я пропускание повторить пример ID свойства. Но здесь я застрял, я не могу получить правильный синтаксис для переключения этого логического свойства.

У меня это до сих пор:

  _this.showHeroDetails = function (item) {
    _this.show_details = item;
  };

что явно неправильно...

  • 0
    Было бы очень полезно, если бы вы могли создать работающий компонент с большим количеством кода.
Теги:
angularjs-ng-repeat

2 ответа

1
Лучший ответ

Из шаблона передайте объект.

<div>
    <button ng-click="dash.showHeroDetails(h)">{{h.button_label}}</button>
</div>

В сценарии просто переключите значение.

_this.showHeroDetails = function (item) {
    item.show_details = !item.show_details;
 };
  • 0
    Lol ты избил меня до ответа. Заметил эту ошибку и по параметру: P
  • 0
    Я был близко, я знал, что это было что-то простое. Благодарю.
Показать ещё 2 комментария
2

Вы можете просто обновить значение в ng-клике. Как это:

<button ng-click="h.show_details = !h.show_details">{{h.button_label}}</button>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню