为什么当UI看到“数据”时,控制器会看到{{data.binder}}?

时间:2013-12-31 16:21:09

标签: angularjs angularfire

我正在尝试使用angularfire的$remove,但我的控制器正在获取{{ data.binder }}而不是数据值:

我的控制器代码非常简单:

 $scope.removeResponse = function(id){
        console.log(id);
        $scope.responses.$remove(id);
    }

$scope.responses在别处宣布。)

HTML:

 <td>[<a  data-ng-click="removeResponse('{{ response.$id }}')" >Delete</a>]</td>

当我在控制台中查看元素时,我看到了:

<a data-ng-click="removeResponse('-JC8IN82_zp1Vwr6u-oo')">Delete</a>

但是当我运行代码时,函数removeResponse会将此值记录为id

{{ response.$id }} responsescontroller.js:93
Error: Firebase.child failed: First argument was an invalid path: "{{ response.$id }}". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"
    at Error (<anonymous>)

我在这里看不到什么?

2 个答案:

答案 0 :(得分:1)

你试过这个吗?

<a data-ng-click="removeResponse(response.$id)">

答案 1 :(得分:0)

在调用click事件处理程序之前,将计算表达式removeResponse('{{ response.$id }}')'{{ response.$id }}'是一个字符串文字,并按原样传递给removeResponse()函数。

如果你想要实际的身份证,那么你需要

<a data-ng-click="removeResponse(response.$id)">

removeResponse('-JC8IN82_zp1Vwr6u-oo')是呈现的HTML,看起来很奇怪,但这就是它的工作原理。