2017-10-04 16 views
1

私は(画像や関連するキャプションのリストを)データを取得するJSON呼び出しを使用して、以下のようにngのリピートを使用してそれを表示しています:

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

私がしたいです文字列値として解釈され、「{{X.TXT}}」ので、このコードは動作しない

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

:ときに、各画像上Iマウスこのようなものを使用して、$ス​​コープ変数を設定しますtxt $ scope変数の値は毎回 '{{x.txt}}'に設定されます...

イメージの上にマウスを置いてこの変数を設定するにはどうすればよいですか?

多くのご意見ありがとうございます。

+0

'$ scope.tをxt = x.txt'もうまくいくはずです。また、おそらく 'ng-src'を使う必要があります。 – Claies

+0

ありがとうございました! ng-srcは必要ないようです... –

答えて

0

まずは$scopeをHTMLの中に書くことはできません。

代わりng-mouseover='$scope.txt = "{{ x.txt }}")'

のようなものでなければなりません書くこと:あなたがng-repeat

を使用するので、それはまた、動作しませんしかし

ng-mouseover='txt=x.txt' 

だから、最終的な解決策は$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

+0

私が実際に使っている方法は、あなたが示唆しているように、関数を使っています。 '' {{ x.name }} そして次の関数::私はこれ持って '$ scope.popOver =関数($イベント、TXT){$ scope.popTxt = TXTを。 var offset = 20; var l = event.pageX + offset + "px"; var t = event.pageY + offset + "px";$ scope.stylePopover = {"位置": "絶対"、 "左":l、 "上":t、 "幅": "100px"、 "高さ": "100px"、 "背景色"サンゴ "、" z-インデックス ":" 1000 " } –

関連する問題