我正在尝试使用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>)
我在这里看不到什么?
答案 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,看起来很奇怪,但这就是它的工作原理。