如何在AngularJS中获取Button标签?

时间:2015-08-11 11:16:36

标签: javascript jquery angularjs

我的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;当我点击按钮。 请建议我哪里错了? 提前致谢

4 个答案:

答案 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);
};

将您的文件保存在本地并运行它们。