在我的HTML页面中有3个输入。使用用户输入,我希望使用KnockoutJS更新我的页面元素。这是我写的脚本:
$(document).ready(function(){
function Task(data){
this.goal=ko.observable(data.goal);
this.type=ko.observable(data.type);
this.date=ko.observable(data.date);
console.log("Data"+ " " + data.goal);
}
var myViewModel=function(tasks){
var self=this;
self.tasks=ko.observableArray([{goal:"abc", type:"Intermediate", date:"12/13/1122"}]);
self.newGoalText=ko.observable("");
self.newTypeText=ko.observable("");
self.newDateText=ko.observable("");
self.addTask=function(){
self.tasks.push(new Task({goal:this.newGoalText(),type:this.newTypeText(), date:this.newDateText()}));
console.log(tasks);
self.newGoalText("");
self.newTypeText("");
self.newDateText("");
}//addTask function
}//viewModel
ko.applyBindings(new myViewModel())
});
console.log告诉我正在按预期从用户获取值。然而,"推"任务数组上的方法似乎根本没有任何影响。请指导我。
答案 0 :(得分:1)
如果要将任务传递给数组,则必须每次都执行,因此,在初始化时,必须使用.text {
overflow: hidden;
max-height: 0;
transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
&.full {
max-height: 1000px;
transition: max-height 1s ease-in-out;
}
您的[new Task({...}), new Task({...})]
不正确。这显示了你的任务变量,而不是你的self.tasks,我想知道你想要展示什么,所以要小心你的变量名称和(无)varname vs this.varname vs self.varname或者你会有这么多头痛......
最后here you are您的示例完全正常工作。
我希望这对你有所帮助。
问候。