앵커를 클릭하면 개체를 저장하고 (잘 작동 함) 단추를 보이지 않게하고 싶습니다. 버튼을 클릭 할 때 'InQuestionBank()'속성을 true로 설정해야합니다. 앵커의 데이터 바인딩을 다음과 같이 변경하면 :녹아웃 JS 여러 번 클릭 바인딩
<a data-bind="click: InQuestionBank, visible: !InQuestionBank()" href="#" class="saveBank btn btn-info title" data-toggle="tooltip" data-original-title="Insert into question bank"><i class="icon-plus-sign"></i></a>
버튼이 사라집니다. 여러 번 클릭 바인딩을 사용할 수 있습니까, 아니면 더 좋은 방법이 있습니까?
<a data-bind="click: $parent.SaveQuestionBank, visible: !InQuestionBank()" href="#" class="saveBank btn btn-info title" data-toggle="tooltip" data-original-title="Insert into question bank"><i class="icon-plus-sign"></i></a>
내 녹아웃 코드 :
var Question = function (data) {
var self = this;
self.Type = ko.observable(data.Type);
self.Question = ko.observable(data.Question);
self.Options = ko.observable(data.Options);
self.InQuestionBank = ko.observable(data.InQuestionBank);
}
var ViewModel = function (initial) {
var self = this;
self.Questions = ko.observableArray([]);
self.SaveQuestionBank = function (question) {
$.ajax({
url: initial.SaveQuestionBankUrl,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: ko.toJSON({ question: question }),
success: function (data) {
if (data.status == "OK") {
$.msgGrowl({
type: 'success',
title: 'Question Bank',
text: 'Successfully saved question in question bank.'
});
}
else if (data.status == "ERROR") {
$.msgGrowl({
type: 'error',
title: 'Question Bank',
text: 'An error occurred - please try again.'
});
}
self.OverallQuestionsBank.push(new OverallQuestionBank({
Question: question.Question(),
Type: question.Type(),
Options: question.Options()
}));
}
});
}
for (var i = 0; i < initial.questions.length; i++) {
self.Questions.push(new Question(initial.questions[i], initial.ParentID));
}
}
왜 서버 또는 OverallQuestionsBank로 밀어 동안 단지 'InQuestionBank'플래그를 변경하지? –
SaveQuestionBank 함수 안에 'self.InQuestionBank = true;'시도했습니다. 그러나 그것은 작동하지 않았다. – Andrew
내 대답을 확인해 주시면 두 번째 이유를 설명 드리겠습니다. –