私は現在ウェブサイトを開発中で、ng-repeat
に編集ノートフィールド機能があります。メモフィールドを編集するには、リンクをクリックして最初にフォームを表示し、次にキー入力し、それを次のように保存する必要があります。問題は、私は正常に保存した後、その入力を非表示にすることはできません。コーディングは次のとおりです。anglejsで投稿した後にフォームを非表示にする方法
index.jade
tr(data-ng-repeat="application in job.applications")
td.notes
div.bold #{getMessage('Notes:')}
div.normal
div(ng-hide='showDetails')
{{application.note}}
.br
a.admin_edit_gray(href='#', ng-click="showDetails = ! showDetails") Edit Note
div(ng-show='showDetails')
textarea.form-control.small-text-font(ng-model='editableTitle', ng-show='showDetails', maxlength="100", ng-trim="false")
div.editable
div(ng-if="editableTitle.length == 100")
| #{getMessage('max 100 symbols.')}
a.small-text-editButton(href='#', ng-click='save(application, editableTitle, application.id)') Save
| |
a.small-text-cancelButton(href='#', ng-click="showDetails = ! showDetails") close
controller.js
$scope.showDetails = false;
$scope.noteFormData = {};
$scope.save = function(application, editableTitle, appId) {
$scope.noteFormData = {
appId: appId,
note: editableTitle
};
mytestService.writeNote($scope.noteFormData).then(
function (notemessage) {
application.note = notemessage;
alert('Note is successfully saved.');
$scope.showDetails = false;
}
);
};
私は正常に保存された後$scope.showDetails = false;
としてフォームを非表示にしようとしました。しかし、それは全く機能しません。その問題の解決方法を教えてください。
'$のtimeout'に' $ scope.showDetails = false'のをラップ試してみてください、ダイジェストの問題である可能性があります。 –
'writeNote'は' $ http'を使ってサーバにアップデートをポストするためのAJAX呼び出しをしていますか? – Arkantos
@Arkantos yap、確かに。それは非同期呼び出しです。 – ppshein