使用$ scope.var作为参数从ng-click调用函数时出现此问题。
例如:
不工作:
var data = [{
"DefaultZone": [{
"key": "stream0",
"value": 100
}, {
"key": "stream1",
"value": 50
}, {
"key": "stream2",
"value": 10
}]
}, {
"Zone 1": [{
"key": "stream0",
"value": 120
}, {
"key": "stream1",
"value": 55
}, {
"key": "stream2",
"value": 15
}]
}]
final = {}
data.forEach(function(x) {
Object.keys(x).forEach(function(y) {
x[y].forEach(function(z) {
if (!final[z['key']]) final[z['key']] = [];
final[z['key']].push({
'x': y,
'y': z['value']
})
})
})
})
answer = []
Object.keys(final).forEach(function(x) {
answer.push({
'key': x,
values: final[x]
})
})
console.log(answer)
工作:
<div ng-repeat="value in values track by $index">
<a ng-click="function({{ value }})">{{ value }}</a>
</div>
如果变量来自$ scope,在Angular控制器上声明,为什么我们不能使用{{}}?还有其他情况我不会使用吗?
答案 0 :(得分:0)
第一件事function is in built keyword
。你不能使用它。
假设在控制器中你定义了这样的函数。
$scope.callMe = function(){
}
然后定义html:
<div ng-repeat="value in values track by $index">
<a ng-click="callMe(value)">{{ value }}</a>
</div>
答案 1 :(得分:0)
我们不能在ng-click等指令中使用表达式 表达式可以从范围访问变量和函数 在函数中使用它时,不需要编写表达式