画像のソースを別の画像のソースにバインドしたい。
最終結果では、大きな画像のソースは、クリックされた小さな(サムネイル)画像のsrcにバインドされます。これはng-modelを使用して可能ですか?
ここに私が持っているものがあります
<div>
<img ng-src="{{selectedImg.src}}">
</div>
<div>
<ul ng-repeat="thumb in franchises">
<li>
<img ng-src="{{thumb.images[0].list}}" ng-model="selectedImg">
</li>
</ul>
</div>
Ng-clickを使用してそれを行うことができます:
<div>
<img ng-src="{{selectedImg.src}}" alt="{{slide.images[0].list}}">
</div>
<div>
<ul ng-repeat="thumb in franchises">
<li>
<img ng-src="{{thumb.images[0].list}}"
alt="{{thumb.images[0].list}}"
ng-click="selectedImg.src = thumb.images[0].list" />
</li>
</ul>
</div>
しかし、次のように、コントローラのオブジェクトとしてselectedImgを定義する必要があります。
$scope.selectedImg = {};
Angular Docsによると、あなたの質問に答えるには、ng-modelまたはカスタムフォームコントロールを使用して、入力、select、およびtextareasのみをバインドできます。
あなたがおそらくやりたいのはこれです:(これはSaulo Lozanoがng-clickでやったことです)
https://jsfiddle.net/4fz4nx1k/2/
<img ng-src="{{thumb.images[0].list}}" ng-click="selectedImg.src = thumb.images[0].list" >
そのため、imgをng-modelと実際にバインドすることはできません。さらに、ng-repeatの内部にng-modelを配置できた場合、ng-repeatコレクションのすべての繰り返し値で同じ「モデル値」が取得されます。