ng-clickまたはng-submitを使用してフォームを送信するときに、角度1を使用して変数を設定しようとしています。その変数は、ng-ifを使用してカスケードしてフォームをDOMから削除します。ただし、「フォームが接続されていないためフォームの送信がキャンセルされました」というエラーメッセージが表示され、フォームが表示されません。ng-submit、フォームを削除し、「フォームが接続されていないためにフォームの送信がキャンセルされました」
はここで完全MWEだ:私は完全にng- *属性を削除するたびに
<html>
<head>
<title>Something</title>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-if="status.value=='ok'">
<form action="url" method="post" target="_blank">
<button type="submit" ng-click="status.value='newwindow'">Open in new window</button>
</form>
</div>
<div>{{status}}</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
var ctrl = app.controller('myCtrl', ['$scope', function($scope) {
$scope.status = {'value':'ok'};
}]);
</script>
</body>
</html>
は、フォームが正常に送信しますが、その後、変数は更新されません。
フォームを投稿するだけの長さでフォームを保持する方法に関する提案はありますか?
迅速なGoogle検索は、あなたのエラーは、フォーム要素はDOMの一部ではないが原因であることを示唆しています。デバッグに役立つよう、すべてのHTMLとAngular codeを含めてください。 –
私はそれを見ました。最初の紅茶では、フォームが明らかにDOMの一部だったように見えましたが、とにかく私は一緒にストライプ版を作成しました。完全なMWEをまとめると、フォームが投稿される前にng- *イベントが実際にフォームを削除していたようです。更新された質問を参照してください。 – Jolyon
ng-clickは関数を参照するべきです –