1
私はクリックしたときにポストリクエストをトリガーするボタンがあるjiraのクラウドプラグインとしてangular-node.jsアプリケーションを開発しています。私は、この投稿要求がボタンがクリックされた回数と呼ばれる奇妙な問題に直面しています。たとえば、最初にボタンをクリックすると、投稿要求が1回だけ呼び出されます。これは、2回目以降の投稿要求が2回実行されるなどです。ページを更新すると、フォーム0が再び開始されます。ここでは、コードは次のとおり1回のクリックで1回送信をバインドするにはどうすればよいですか?
コントローラコード:
$scope.addActor = function(){
AP.require('dialog', function(dialog){
dialog.create({
key: 'actor-content',
width: '40%',
height: '30%',
chrome: true,
});
});
AP.require('events', function(events){
events.on('customEvent', function(){
console.log(arguments[0]);
var data = {
productName: $scope.productName,
checked: false,
actor: arguments[0]
};
$http.post('/addActor', data)
.success(function(data){
$scope.actors = [];
for (var actor in data){
console.log(data[actor].checked)
console.log(data[actor].actor)
$scope.actors.push({
checked : data[actor].checked,
id : data[actor].actor
});
}
AP.require("messages", function(messages){
//create a message
var message = messages.success('','Actor added');
setTimeout(function(){
messages.clear(message);
}, 2000);
});
/*$scope.formData = {};*/
}).error(function(data){
AP.require("messages", function(messages){
//create a message
var message = messages.error('','Error in Adding Actor');
setTimeout(function(){
messages.clear(message);
}, 2000);
});
});
});
});
};
dialogActor.hbs
<body style="background:white">
<div class="aui-dialog2-content">
<script>
$(document).one('click', function(e) {
// initialization here
AP.require('dialog', function(dialog) {
dialog.getButton('submit').bind(function() {
AP.require('events', function(events){
var actor = $('#actor').val();
events.emit('customEvent', actor);
});
dialog.close();
});
dialog.getButton('cancel').bind(function() {
dialog.close();
});
});
});
</script>
<form class="aui" action="#" name="jiraform" id="actorform">
<div class="content">
<div class="field-group">
<label for="summary">Actor<span class="aui-icon icon-required">Required</span></label>
<input type="text" value="" name="actor" id="actor" class="text long-field" data-aui-validation-field data-aui-validation-required="required" required>
<span class="actorError" style="color: #880000"></span>
</div>
</div>
</form>
</div>
</body>
リクエストがネットワークタブまたはconsole.log()から何度も送信されていることを確認していますか? – Saubar