如何将图像的src绑定到ng-model并在Angular中提取它?

时间:2015-04-09 16:01:50

标签: angularjs image angular-ngmodel

我想将图像的来源绑定到另一个图像的来源。

visual example

在最终结果中,大图像的来源应绑定到点击的较小(缩略图)图像的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>

2 个答案:

答案 0 :(得分:11)

您可以使用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 = {};

答案 1 :(得分:4)

要回答您的问题,根据Angular Docs,您只能使用ng-model或自定义表单控件绑定输入,选择和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集合的所有重复值中获得相同的“模型值”。