我有一个问题是将ng-click
指令与我的控制器内的方法绑定。我试图将大括号放在ng-click
中,但语法错误。如果我放ng-click="{{action.method}}"
,就会出现同样的行为。
<!DOCTYPE html>
<html ng-app="app">
<head>
<script data-require="angular.js@1.2.11" data-semver="1.2.11" src="http://code.angularjs.org/1.2.11/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="Controller">
<ul ng-repeat="action in actions">
<li ng-click={{action.method}}>{{action.name}}</li>
</ul>
</body>
</html>
var app = angular.module('app',[])
app.controller('Controller',['$scope',function ($scope)
{
$scope.actions = [
{
name : 'add Folder',
method : 'addFolder()'
}
]
$scope.addFolder = function(){
alert('addFolder')
}
}])
有什么建议吗?
答案 0 :(得分:2)
您应该使用:
<ul>
<li ng-repeat="action in actions" ng-click="action.method()">{{action.name}}</li>
</ul>
代替。
以下是演示:http://jsbin.com/cuye/2/edit
请注意,ng-click
接受表达式,不仅仅是函数,因此您需要调用它:action.method()
。