私は確認とキャンセルの方法で親モーダルディレクティブを持っています。子ディレクティブからAngularJS親ディレクティブスコープメソッドを呼び出す方法
ngDialog.open({
scope : true,
showClose : false,
template : theTemplate,
className : 'ngdialog-theme-prompt -small',
controller : ['$scope', function Ctrl($scope) {
$scope.message = message;
$scope.confirm = function(){
$scope.closeThisDialog();
resolve(true);
};
$scope.cancel = function(){
$scope.closeThisDialog();
resolve(false);
};
}]
}).closePromise.then(function() {
resolve(false);
})
テンプレートは別の指令です。私は、サーバーにいくつかの検証とPOSTを実行して、親モーダルディレクティブ確認を呼び出すかのメソッドをキャンセルすることができるようにしたいモーダルの子ディレクティブで
<form class="edit-stakes-content">
<ul>
<li ng-repeat="stake in settings track by $index">
<input type="number" name="input" pattern="^\d+$" min="0" value="{{stake}}" />
</li>
</ul>
<div class="edit-stakes-control">
<button ng-click="cancel();" class="apl-btn apl-btn-link apl-btn-large" translate>CANCEL</button>
<button ng-click="confirm();" autofocus="true" class="apl-btn apl-btn-update apl-btn-large" translate>SAVE</button>
</div>
</form>
。
これと同様に:親メソッドを呼び出す
Directive.$inject = ['UserSettings'];
function Directive(UserSettings) {
function Link($scope) {
$scope.settings = angular.copy(UserSettings.get('presetStakeSettings').settings);
$scope.cancel = $scope.$parent.cancel();
}
return {
'link': Link,
'restrict': 'E',
'replace': true,
'templateUrl': 'betting/edit-stakes/edit-stakes.html'
}
}
ドルスコープの$ parent.cancelがまだ関数ではない仕事をしているようだJavaScriptエラーがスローされます。
JavaScriptエラーなしで子通信を親通信にするより良い方法はありますか?