我的AngularJS项目中有以下代码行。
<div ng-show="update">
<table border="1">
<tr ng-repeat="x in names">
<td>{{ x.uname}}</td>
<td>{{ x.upass}}</td>
<td><button ng-model="index" ng-click="show()"
ng-value="{{x.index}}">Edit</button></td>
</tr>
</table>
单击特定按钮时,我想检索该按钮标签。 为此我在Show函数中编写了代码:
var v = $scope.index;
alert(v);
但警告框显示&#34;未定义&#34;当我点击按钮。 请建议我哪里错了? 提前致谢
答案 0 :(得分:1)
如何将您的值作为onclick函数的参数提供?
<div ng-show="update">
<table border="1">
<tr ng-repeat="x in names">
<td>{{ x.uname}}</td>
<td>{{ x.upass}}</td>
<td><button ng-click="show(x.index)">Edit</button></td>
</tr>
</table>
然后
function show(id){
alert(id);
}
这应该有效。另外ng-model对按钮不起作用。
答案 1 :(得分:1)
在ng-click = show(item)下 - 这将给出特定的项目对象。
@Override
protected void onPostExecute(String message) {
super.onPostExecute(message);
Adapter adptor=new Adapter(MainActivity.this,details);
ListView l= (ListView) findViewById(R.id.listview);
l.setAdapter(adptor);
}
此函数从视图中提供特定的单击obj。
ng-model不能处理按钮。
答案 2 :(得分:0)
您可以将重复迭代的索引传递给show方法,如下所示:
<button ng-click="show($index)" ...
并像这样使用它:
function show(i){
var v = names[i];
alert(v);
}
您可以在此处看到它:PLNKR DEMO
注意:如果您将索引传递给后端服务,如果您在视图中使用过滤器来更改/减少ng-repeat表达式,则索引可能与实际数组不匹配
@Grundy指出的另一个选择是将对象传回,这样可以省去从阵列中访问它的步骤......(注意:这是建议的最佳做法)
答案 3 :(得分:0)
我假设你想要点击的按钮标签以及提供的列表中的索引。这是你可以做的。
<div ng-repeat="buttonId in testdata2">
<button ng-bind="buttonId" ng-click="clickedMe(buttonId, $index)"></button>
</div>
$scope.clickedMe = function(buttonId, index) {
console.log(buttonId + " - " + index);
};
将您的文件保存在本地并运行它们。