Я пытаюсь вызвать вложенную функцию в угловом. Я отформатировал функции таким образом, чтобы аккумулировать код, но при вызове функции через ng-click он, похоже, не работает.Call Угловые вложенные функции
В моем случае возникает конфликт областей, поскольку имя переменной берется локальной областью, поэтому я назвал контроллер и вызвал его как дочернее свойство контроллера, но не успел.
Я создал 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' –
По той же причине, почему вы хотели бы использовать parent.variable в любой конфликтной функции JS-scope. – kirgy