我想调用Angular中的嵌套函数。我已经以这种方式格式化了函数,以便更新代码,但是在通过ng-click调用函数时,它似乎不起作用。调用Angular嵌套函数
在我的情况下,发生范围冲突是因为变量名是由本地范围取得的,因此我已命名控制器并将其作为控制器的子属性进行调用,但未成功。
我创建了一个的jsfiddle来证明我的意思: https://jsfiddle.net/838L40hf/16/
HTML:
<div class="InviteAppContainer" ng-app="InviteApp">
<div ng-controller="InviteController as cntrl">
<button ng-click="alert()">
Alert, standard
</button>
<div ng-repeat="invite in invites">
<button ng-click="cntrl.invite.alert(invite.name)">
Alert, {{invite.name}}
</button>
</div>
</div>
</div>
JS:
var InviteApp = angular.module('InviteApp',[])
.controller('InviteController', function($scope) {
$scope.invites = {
0 : {
"name":"invite 1",
},
1 :{
"name" : "invite 2"
}
};
$scope.invite = {
alert : function(name) {
alert(name);
}
};
$scope.alert = function() {
alert("alert2!");
};
});
感谢,围绕工作作为工作,但我想知道如果有办法也许目标父范围的方式? – kirgy
@kirgy我不知道你为什么想这样做,但它似乎更短的语法。我建议使用'object.function_name'而不是'controller.object.function_name' –
原因与你想在任何JS函数 - 范围冲突中使用parent.variable的原因相同。 – kirgy