Javascript 角度点击事件不起作用,给出了什么?

Javascript 角度点击事件不起作用,给出了什么?,javascript,angularjs,Javascript,Angularjs,我正在制作一个愚蠢的小计算器,试图学习AngularJS。我正在尝试使用ng click trigger事件来更新计算器的“屏幕”。这是我的密码: var calcApp=angular.module('NodeCalc',[]); CalApp.controller('CalcController',['$scope',函数($scope){ $scope.memory={ 调用:函数(){ log(“内存调用”); }, 清除:函数(){ log(“内存清除”); }, 附加:功能(值){

我正在制作一个愚蠢的小计算器,试图学习AngularJS。我正在尝试使用ng click trigger事件来更新计算器的“屏幕”。这是我的密码:

var calcApp=angular.module('NodeCalc',[]);
CalApp.controller('CalcController',['$scope',函数($scope){
$scope.memory={
调用:函数(){
log(“内存调用”);
},
清除:函数(){
log(“内存清除”);
},
附加:功能(值){
log('memory add');
}
}
$scope.buttons={
内存:[
{text:'mrc',action:$scope.memory.recall},
{text:'m-',action:$scope.memory.clear},
{text:'m+',action:$scope.memory.add},
]
};
}]);

{{button.text} /


ng click
表达式应为
ng click=“button.action()”

当使用
ng-*
指令时,不需要用胡须将其包裹起来,传递的表达式将由
angular

var calcApp=angular.module('NodeCalc',[]);
calcApp.controller('CalcController',['$scope',',
职能($范围){
$scope.memory={
调用:函数(){
log(“内存调用”);
},
清除:函数(){
log(“内存清除”);
},
附加:功能(值){
log('memory add');
}
}
$scope.buttons={
内存:[{
文本:“mrc”,
操作:$scope.memory.recall
}, {
文本:“m-”,
操作:$scope.memory.clear
}, {
文本:“m+”,
操作:$scope.memory.add
}, ]
};
}
]);

{{button.text} /


一个想法就是调用在
ng单击中定义的
$scope
函数,然后从
ng repeat
中传递
$index

ng-click="clicked($index)"

$scope.clicked = function(index) {
    var fn = $scope.buttons.memory[index].action;
    fn();
}

也许你的意思是我试过了。我得到了相同的堆栈跟踪,它运行这些函数时没有出现任何单击。。。我刚刚意识到这个错误是一个提供了更多信息的链接:语法错误:从[{button.action}}]开始的表达式[{{{button.action}]第2列的标记“{”无效键。您是否在这里尝试了文本函数
{text:'mrc',action:function(){alert('hi');},
刚刚尝试过-同样的事情。所以我试着完全删除HTML中“button.action”周围的括号。错误已消失,但没有单击事件触发。谢谢!这就是我错过的!很高兴你在SpacePope找到了答案。你们两个中的一个能给未来的读者解释一下答案吗?注释表明,
ng click=“button.action()”
不起作用。@danh–到底要添加什么?问题是我尝试了
ng click=“{{button.action()}}”
。去掉括号是解决办法,这让我很困惑。请参见OP下的前两条注释。