gpt4 book ai didi

javascript - 将 Base2 与 KnockoutJS View 模型结合使用

转载 作者:行者123 更新时间:2023-11-28 10:08:24 25 4
gpt4 key购买 nike

我使用 Base2 作为一种方法,让我们能够轻松地在系统中进行继承,并使用 KnockoutJS 进行一些 UI 交互。

我们为 ViewModel 定义了一个基类

BaseViewModel = Base.extend({
...
});

然后我们将其扩展为我们的 View 模型:

ExampleViewModel = BaseViewModel.extend({
text: ko.observable("")
});

不过好像有问题。当您创建 View 模型的 2 个以上实例时(例如,如果您将它们插入 observableArray 并使用模板构建 UI),似乎对绑定(bind)字段所做的任何更改都会更新所有 View 模型,而不仅仅是一个 View 模型这是必然的。

有人知道这是为什么吗?

最佳答案

因为扩展实际上并没有实例化一个新的可观察对象,它只是复制引用。

我认为你可以做这样的事情:

ExampleViewModel = BaseViewModel.extend({
constructor: function() {
this.text = ko.observable("");
}
});

虽然不如普通的 Base2 语法那么好,但只是由于属性问题而限制了 Knockout 的实现方式。

关于javascript - 将 Base2 与 KnockoutJS View 模型结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878013/

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