Angular ng-mouseover更新$ scope变量

时间:2017-10-04 22:33:34

标签: angularjs

我使用JSON调用获取数据(图像列表和相关标题),并使用ng-repeat显示它,如下所示:

<div ng-repeat="x in records">
    <img  src='images/{{ x.img }}' alt='{{ x.txt }}'/>
</div>

当我将鼠标悬停在每个图像上时,我想设置一个$ scope变量,使用类似这样的东西:

<div ng-repeat="x in records">
    <img  ng-mouseover='$scope.txt = "{{ x.txt }}")' src='images/{{ x.img }}'  alt='{{ x.txt }}'/>
</div>

此代码不起作用,因为&#34; {{x.txt}}&#34;被解释为一个字符串,并且txt $ scope变量的值设置为&#39; {{x.txt}}&#39;每一次......

当鼠标悬停在图像上时,如何设置此变量?

非常感谢您的建议!!

1 个答案:

答案 0 :(得分:0)

首先,您无法在HTML中编写$scope

而不是写ng-mouseover='$scope.txt = "{{ x.txt }}")'

应该是这样的:

ng-mouseover='txt=x.txt'

但是,由于您使用ng-repeat

,它也无效

所以最终的解决方案是使用$parent

<img  ng-mouseover="$parent.txt = x.txt" ng-init="txt=''" src='{{ x.img }}'  alt='{{ x.txt }}'/>

Demo Plunker 1

或者你可以在ng-mouseover上调用一些方法:

<img  ng-mouseover="foo(x.txt)" src='{{ x.img }}'  alt='{{ x.txt }}'/>

$scope.foo = function(txt){
   $scope.txt = txt;
};

Demo Plunker 2