如何在knockout.js中立即更新对象属性值



如何在knockout.js中一次更新对象属性值

我的做法是一个接一个,就像这里的例子

self.person = {
id: ko.observable(),
name: ko.observable()
};
self.person.id("1");
self.name.id("AAAA");

我想要的是这样的

self.person = {
id: ko.observable(),
name: ko.observable()
};
var temp = {
id: "1",
name : "AAAA"
}
self.person(temp)

可能吗?

既然您标记了knockout-mapping-plugin,下面是如何使用ko.mapping.fromJS:

const person = ko.mapping.fromJS({
id: undefined,
name: undefined
});
const temp = {
id: "1",
name : "AAAA"
}
// Both undefined:
console.log(
person.name(),
person.id()
)
ko.mapping.fromJS(temp, person);
// Now set to 1 and AAAA
console.log(
person.name(),
person.id()
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>

有关更多信息,请查看文档。