Javascript 如何从knockoutjs更新对象的值?
我使用knockoutjs将数据绑定到表中,我想在用户单击时更新对象。这是我的密码Javascript 如何从knockoutjs更新对象的值?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我使用knockoutjs将数据绑定到表中,我想在用户单击时更新对象。这是我的密码 var Books = [{Book:"Harry Potter",Author:"J.K rowling"},{Book:"5 Point Someone",Author:"Chetan Bhagat"},{Book:"I too had a love story",Author:"Ravinder Singh"}]; var appViewModel = function() {
var Books = [{Book:"Harry Potter",Author:"J.K rowling"},{Book:"5 Point Someone",Author:"Chetan Bhagat"},{Book:"I too had a love story",Author:"Ravinder Singh"}];
var appViewModel = function() {
this.firstName = ko.observable("Amit");
this.Books = ko.observableArray([]);
this.Books(Books);
this.updateBook = function() {
this.Book("Harry Potter and Prisoner of Azkaban");
}
};
ko.applyBindings(appViewModel);
但它得到了一个错误:“uncaughttypeerror:string不是一个函数”。你怎么能修好它
请参阅:您需要每个
书籍
对象的属性也是一个可观察的
。使用插件(现在是内置的)实现以下功能:
this.Books = ko.mapping.fromJS(Books);
另外,当这些都指向不同的对象时,两次看到这些这个
,也有点误导。通常的做法是:
this.updateBook = function(book) {
book.Book("Harry Potter and Prisoner of Azkaban");
};
请参见是,它不是一个函数,因为它是一个平面json数据。但我选择删除我的答案并投票结束你的问答。看起来你在寻找一个编码服务而不是解决问题。我们需要您的努力。只需使用这个应该可以很好地工作。Cheers我正在学习knockout js。我有一个问题,这个函数的作用是什么ko.mapping.fromJS()
?Books变量已存储json。我们不能声明Books-observearray并初始化相同的位置,比如this.Books=ko.observearray([ko.mapping.fromJS(Books)])
我尝试了此代码,但出现了错误。因为Books
已经是一个对象数组,ko.mapping.fromJS
将其转换为这些对象的observearray
。因此,在您的行中,您最终得到了包含另一个observableArray
的observableArray
。那么我们可以试试这个吗?Books=ko.observable(ko.mapping.fromJS(Books))?这条线也是这样吗?@Thomas,你还是会得到同样的结构。另外,您的第一个代码段实际上比我想象的嵌套得更多,这实际上会创建两个嵌套数组。