您好我是Angular的新手并尝试了指令。以下是代码
HTML
<div ng-app="scopetest" ng-controller="controller">
<div phone action="callhome()"> </div>
</div>
的javascript
angular.module("scopetest", [])
.controller("controller", function($scope){
$scope.callhome = function(){
alert("called");
}
})
.directive("phone", function(){
return {
scope: {
action:"&"
},
template: "<button ng-click='action()' >Call</button>"
};
});
我的问题是,如果我们将callhome
函数传递给action
属性,而ng-click
我们用括号调用action
函数,那么我们为什么要这样做?在phone指令ng-click='action()'
上设置属性时需要指定括号?为什么ng-click='action'
只能工作?我们已经指定action="callhome()"
。两个地方为什么需要?
答案 0 :(得分:4)
因为the attribute没有指定功能。它指定an expression。大多数情况下,您希望该表达式是函数调用(函数调用需要()
(或apply
或new
或等等。)
您可以指定其他内容:
ng-click="window.myGlobal = true;"