Passing parameter to ng-click directive, within custom directive

后端 未结 2 2020
孤街浪徒
孤街浪徒 2020-12-31 06:45

I\'m using ng-repeat in the template for a custom directive as follows:

  • 相关标签:
    2条回答
    • 2020-12-31 07:22

      I think that the issue is that you are using the double curly braces inside of the ng-click, and angular doesn't like that.

      Try changing your repeater to this (note there are no curly braces around $index):

      <li ng-repeat="image in images">
          <img ng-src="{{image.url}}" ng-click="togglePhoto($index)">
      </li>
      

      I also put together a working jsfiddle to show that this works.

      http://jsfiddle.net/n02ms8s0/4/

      0 讨论(0)
    • 2020-12-31 07:30

      Figured this out. Hope it helps anyone else stuck on it.

      Firstly this

      ng-click="togglePhoto({{$index}})"
      

      Should be

      ng-click="togglePhoto($index)"
      

      Braces not needed!

      Secondly I found that you can pass the event object into the click function eg

      ng-click="togglePhoto($event)"
      

      Then catch that event and find out what element trigged it in your click function

      $scope.togglePhoto = function(e)
      {
          console.log(e.currentTarget)
      }
      
      0 讨论(0)
    提交回复
    热议问题