gpt4 book ai didi

javascript - 访问 View 模型之间的计算值

转载 作者:行者123 更新时间:2023-11-28 07:11:12 26 4
gpt4 key购买 nike

我试图在一个页面上包含多个 View 模型,我不想将这些 View 模型与特定的页面 ID 联系起来,就像我知道你可以做的那样,因为我希望能够多次使用每个模型页面并将使用 with绑定(bind)。

我正在尝试读取 self.total 的值在VM1 ,来自self.totalVM2 ,但我收到错误:

Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.

阅读标准VM1.x来自VM2的变量似乎工作正常,但是 knockout 只会在尝试获取计算值时提示。

JavaScript:

var VM1 = function(parent) {
var self = this;

self.costa = 1000;
self.costb = 500;

self.total = ko.computed(function(){
return self.costa + self.costb;
});
};

var VM2 = function(parent) {
var self = this;

self.total = ko.observable(parent.vm1.total);
};

var MasterViewModel = function() {
var self = this;

self.vm1 = new VM1(self);
self.vm2 = new VM2(self);
};

window.masterViewModel = new MasterViewModel();

ko.applyBindings(window.masterViewModel);

HTML:

<div data-bind="with: vm1">
<p data-bind="text: total()"></p>
</div>
<div data-bind="with: vm2">
<p data-bind="text: total()"></p>
</div>

最佳答案

解决方案(@haim770 也指出)是将总计作为函数调用:self.total = ko.observable(parent.vm1.total());

关于javascript - 访问 View 模型之间的计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com