AngularJS在ng-repeat中的当前迭代中定位元素

时间:2015-07-23 16:49:46

标签: javascript angularjs angularjs-ng-repeat

我确信这个问题已经多次以某种形式得到了回答,但我不确定要搜索什么来找到解决方案。

假设我们有一个简单的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}}&GT;

并使用唯一ID定位它,但我确信有更优雅的方式来处理此

1 个答案:

答案 0 :(得分:5)

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

<强>控制器

$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>