2015-11-06 54 views
0

我正在学习angularjs,我能够列出通过REST API接收到的数据。我将数据显示在一个表中,并在其中一列中我想要有一个删除按钮,最终将进行DELETE调用以从数据库中删除该特定记录。下面是我使用HTML:如何将数据传递给角度控制器?

<table st-table="displayedCollection" st-safe-src="hosts" class="table table-striped"> 
    <thead> 
    ... 
    </thead> 
    <tbody> 
     <tr ng-repeat="x in displayedCollection"> 
      <td>{{x.hostname}}</td> 
      <td>{{x.ipaddress}}</td> 
      <td>{{x.macaddress}}</td>    
      <td> 
       <button 
        type="button" 
        class="btn btn-default btn-sm" 
        ng-click="delete_record({{x._id}})"> 
        <span class="glyphicon glyphicon-remove"></span> 
       </button> 
      </td> 
     </tr> 
    </tbody> 
    ...  
    </table> 

这给了我这个错误:

Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 16 of the expression [delete_record({{x._id}})] starting at [{x._id}})]. 

我的控制器看起来是这样的:

app.controller("meanVoyCtrl", function($scope,$http) { 
    ...   
    $scope.delete_record = function(id) {alert("id is ["+id+"]");}; 
    ... 
}); 

现在,如果我能我会很高兴只需要弹出一个alert显示要删除的记录的_id

我在这里做错了什么?

感谢

回答

1

摆脱curlys的,只是做:

ng-click="delete_record(x._id)"> 
1

你不需要{{}}各地x._id。应该是这样的:

ng-click="delete_record(x._id)" 
1

你只需要如果你是一个角度指令外(在这种情况下,“NG重复”)使用大括号。它用作使用角度数据或控制器代码的一种方式。因为你已经在角度指令中了,所以不需要花括号。您的按钮的HTML将成为:

ng-click="delete_record(x._id)"> 
+0

_“你只需要如果你是一个角指令外使用大括号” _ - 不管你受到外界的意思,语句是不正确的。花括号是否可以使用取决于指令的期望。他们中的一群**做**期望模板,'ngHref'例如OP代码不起作用的原因是表达式在插入之前被解析。否则,即使使用大括号也可以工作。 – zeroflagL

+0

是的,你是对的。由于他没有使用期望模板的角度指令,因此我不想深入讨论这个简单的问题。 –

相关问题