我确定这个问题已经以一种或另一种形式得到了无数次的回答,但是我不确定要寻找什么才能找到解决方案。
假设我们有一个简单的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/