У меня есть веб-страницу с двумя изображениями и текстом под которыми читает больше информации. Когда пользователь нажимает на «Дополнительная информация», я хочу, чтобы одна из других фотографий и текста была удалена, и чтобы оставить оставшуюся, на которую было нажата кнопка. Если пользователь снова нажимает на дополнительную информацию, я хочу, чтобы оба изображения были снова показаны. В настоящее время я могу удалить одно изображение, хотя и противоположное, на которое я нажимаю, но когда я нажимаю на текст ниже, они оба исчезают.
Пожалуйста, смотрите мой код ниже:
HTML
<div ng-repeat="package in Packages.packageCards"
ng-hide="package.packNum === Packages.packageNum" ng-show="Packages.showBoth">
<h3 class="pack-title">{{package.packTitle}}</h3>
<img ng-src="{{package.pic}}"/>
<p ng-click="Packages.showPackDetails(package.packNum)">More Information</p>
</div>
JS Угловая контроллер
this.showBoth = true;
this.showPackDetails = function(packNum){
this.showBoth = !this.showBoth;
this.packageNum = packNum;
}
this.packageCards = [
{
packTitle: "Package 1",
pic: "/images/packages/package-1.jpg",
scrollTo: "package_one_description",
packNum: 1
},
{
packTitle: "Package 2",
pic: "/images/packages/package-2.jpg",
scrollTo: "package_two_description",
packNum: 2
}
];
Я смотрел на нее в течение нескольких часов, и теперь моя голова находится в спина с этой логикой. Свежая пара глаз и входной сигнал были бы весьма признательны. Также, пожалуйста, дайте мне знать, если требуется дополнительная информация. Решение, приведенное ниже, работает до определенной точки, но не отображает оба изображения снова щелчком по желанию.
вы можете предоставить jsFiddle, который будет копировать вашу проблема. – Thinker
Я могу сделать @Thinker –
«это» внутри функции не всегда ссылается на объект, где вы определили эту функцию. Кэшируйте эту локальную переменную внутри вашего контроллера: var self = this; а затем используйте «self» внутри вашего обработчика функции вместо «this» – Rustam