【问题标题】:How to avoid multlple times called method at angular's ng-repeat如何避免在角度ng-repeat中多次调用方法
【发布时间】:2012-09-10 08:29:57
【问题描述】:

我已经写了这段代码。但是当我单击图像时,它调用了三次。它应该被调用一次 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");
    };

};

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    foo() 被 执行 每次 li 模板被渲染(3 次,因为你有 3 个图像),因为它包含在 {{ }} 中。

    试试

    ng-click="foo()"
    

    改为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      相关资源
      最近更新 更多