我确定这个问题已经以一种或另一种形式得到了无数次的回答,但是我不确定要寻找什么才能找到解决方案。

假设我们有一个简单的ng-repeat:

<div ng-repeat="item in items">
   <input type="text" value="{{item.name}}">
   <a ng-click="getTxtBoxVal(whatDoIPassInHere)">Get Text Box Value</a>
</div>

在javaScript文件中:
   function $scope.getTxtBoxVal(val) {
       alert(val)
   }

基本上我想知道whatDoIPassInHere参数中应该传递什么,在jquery中应该是这样的:$(this).siblings(input).val()
我确实有一种解决方法,即为每个文本框赋予唯一的ID:
<input type="text" id="myTextBox_{{index}}" value="{{item.name}}>

并使用唯一的ID定位它,但是我敢肯定,有一种更优雅的方式来处理此问题

最佳答案

您没有将输入与模型相关联,因此angular不知道如何引用该值。 See this plunkr for how to accomplish what you are asking

Controller

$scope.things = [
    {
      'name': 'apple',
      'value': '12',
      'isTasty': true
    },
    {
      'name': 'tire',
      'value': '7',
      'isTasty': false
    },
    {
      'name': 'carrot',
      'value': '9',
      'isTasty': false
    },
    {
      'name': 'cake',
      'value': '1',
      'isTasty': true
    }
  ];

  $scope.getVal = function (value) {
    alert(value);
  };

查看
<div ng-repeat="item in things">
      <input type="text" ng-model="item.name" value="{{item.name}}">
      <a href="#" ng-click="getVal(item.name)">Get Text Box Value</a>
    </div>

关于javascript - ng-repeat中当前迭代中的AngularJS Targeting元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31593508/

10-16 13:57