Angularでネストされた関数を呼び出そうとしています。私はコードを整理するためにこのような方法で関数の書式を設定しましたが、ng-clickで関数を呼び出すと機能しないようです。Angularネストされた関数を呼び出す
私の場合は、変数名がローカルスコープによって取得されるため、スコープの競合が発生するため、コントローラの名前をコントローラの子プロパティとして呼び出せましたが、成功しませんでした。 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なぜあなたはそれをしたいのか分かりませんが、それは構文に関しては短いようです。 'controller.object.function_name'の代わりに' object.function_name'を使うことをお勧めします。 –
JS関数スコープの競合でparent.variableを使用する理由と同じ理由があります。 – kirgy