0

私はこのコードを書きました。でも、画像をクリックしたら3回鳴った。一度 foo() メソッドを呼び出す必要があります。

<div ng-controller="photoCtrl">

        <img ng-src="{{currentImg.path}}" class="current-img"></img>
        <p>
        <ul>
            <li ng-repeat="image in images" class="thumb-list">
            <img ng-src={{image.path}}/ class="thumb" ng-click={{foo()}}></img>
            </li>

        </ul>

</div>

PhotoCtrl はここにあります...

var photoCtrl = function($scope){
    $scope.images = [
        {"path":"img/a.jpeg"},
        {"path":"img/b.jpeg"},
        {"path":"img/c.jpeg"}
    ];
    $scope.currentImg = _.first($scope.images);

    $scope.foo = function(){
        console.log("Called");
    };

    $scope.setCurrentImg = function(item){
        console.log("callellellellellle");
    };

};
4

1 に答える 1

1

foo() は{{ }} で囲まれているため、li テンプレートがレンダリングされるたびに (3 つの画像があるため 3 回)実行されています。

試す

ng-click="foo()"

代わりは。

于 2012-09-10T19:22:55.397 に答える