knockoutjsに新しく、Loading and saving data
のチュートリアルに従っていましたが、少し問題があります。オブジェクトを配列にプッシュすると、配列は空になります。私もフォームを使用しています。ここに私のコードは、オブジェクトをobservableArrayにプッシュ
function Quiz(data) {
this.quiz_name = ko.observable(data.newQuizName);
this.quiz_type = ko.observable(data.newQuizType);
}
function QuizViewModel() {
var self = this;
self.quizzes = ko.observableArray([]);
self.newQuizName = ko.observable();
self.newQuizType = ko.observable();
self.addQuiz = function() {
self.quizzes.push(new Quiz({quiz_name: this.newQuizName(), quiz_type: this.newQuizType()}))
console.log(ko.toJSON(self.quizzes));
};
}
ko.applyBindings(new QuizViewModel());
であり、これは私のHTML
<form name="quizzes" id="new-form-quizzes" data-bind="submit: addQuiz" style="display:none">
<div class="form-group">
<label for="quiz-name">Quiz Name</label>
<input type="text" class="form-control" id="quiz-name" aria-describedby="quiz name"
data-bind="value: newQuizName"
placeholder="Quize Name"/>
</div>
<div class="form-group">
<label for="quiz-type">Quiz Type</label>
<input type="text"
class="form-control"
id="quiz-type"
data-bind="value: newQuizType"
placeholder="Quiz Type"/>
</div>
<button type="submit">Save</button>
</form>
ないnewQuizName
とnewQuizType
の両方が値を持っているそうであるように私が間違っているのかわからです。どんな助けでも大歓迎です。
ありがとう:だから、にあなたのコードを変更します。それが機能するように管理されています。サイト上のチュートリアルが間違っていることを意味するのか、まったく間違っているのか分かりません。私はダブルチェックします。 –