【问题标题】:How to trigger ng-click inside ng-repeat angularJS如何在 ng-repeat angularJS 中触发 ng-click
【发布时间】:2015-02-22 19:24:09
【问题描述】:

ng-click 在 ng-repeat 中不起作用。我已阅读所有指南和类似问题,但在我的代码中没有任何作用。如果我单击 ng-repeat 内的标签,则不会发生任何事情,但是如果我单击按钮,则会调用该函数。

html

                <div ng-repeat="sykdom in sykdommer" ng-model="sykdom.name" ng-click="test();"> 
                     <a class="item item-icon-right" href="#" ng-click="test();" >
                        {{sykdom.name}}
                        <i class="icon ion-ios-arrow-right"></i>
                     </a>   
                </div>  
<button ng-click="test()> test </button>

JS

$scope.sykdommer = [{name:'test1'},
                     {name:'test2'},
                     {name:'test3'}];

$scope.test = function(){
    alert('you clicked!');
};

我试过 ng-click="$parent.test()" 和 ng-model="sykdom.name" 没有任何运气。请帮忙,真的卡在这个问题上:(

【问题讨论】:

  • 能否请您创建一个 plunkr 或解决问题? ng-repeat div 是否在 ng-includeng-if 内?

标签: angularjs angularjs-scope angularjs-ng-repeat angularjs-ng-click


【解决方案1】:

这是我使用您的数据制作的示例:http://plnkr.co/edit/o4sqPd

模板应该是这样的:

<div ng-repeat="sykdom in sykdommer"> 
      <a class="item item-icon-right" href="#" ng-click="test(sykdom.name);" >
         {{sykdom.name}}
       <i class="icon ion-ios-arrow-right"></i>
      </a>   
</div>  

您应该使用 ng-model 指令,以防它是您可更改数据的一部分 - 在输入/文本区域等标签中(文档:https://docs.angularjs.org/api/ng/directive/ngModel

【讨论】:

  • 我在 plunker 中尝试了原始代码,它按原样工作;我不会否决您的回答,因为您在这方面花了很多时间;但是,我否决了这个问题;工作人员:plnkr.co/edit/StkhSt7jVqFUtQpTUNwu?p=preview
  • @shershen 你能重现这个问题吗?为什么会这样?
  • @Manube 是的,你是对的,我首先对 ng-model 进行了编辑,我在回答中已经提到过。实际上是的,原始设置似乎也可以,所以问题似乎不在这部分
  • 谢谢,是的,它确实有效。我现在明白了我的问题是什么,我在 div 中添加了一些动画,这导致了错误。不知道为什么,谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 2016-11-13
相关资源
最近更新 更多