gpt4 book ai didi

mvvm - Kendo UI - 您可以将 View 模型创建为函数吗

转载 作者:行者123 更新时间:2023-12-04 23:24:19 25 4
gpt4 key购买 nike

使用 Knockout 有几种潜在的 View 模型创建模式,一种是使用文字:

var viewModel = {
firstname: ko.observable("Bob")
};

ko.applyBindings(viewModel );

另一种是使用函数:
var viewModel = function() {
this.firstname= ko.observable("Bob");
};

ko.applyBindings(new viewModel ());

如本问题所述:

Difference between knockout View Models declared as object literals vs functions

我的偏好一直是使用函数,因为它本质上为您提供了一个“工厂”,允许您创建同一 View 模型的多个实例。

使用 KendoUI,我看到的所有示例都使用文字语法:
var viewModel = kendo.observable({
firstname: "Bob"
});

kendo.bind(document.body, viewModel);

我的问题是,使用 Kendo 是否可以通过函数模拟 View 模型创建的 Knockout 风格?这将允许我创建同一 View 模型的多个实例,添加“私有(private)”功能等......

最佳答案

经过一番思考,我意识到“这当然是可能的!” ...

ViewModel = function() {
this.firstname = "Bob";

return kendo.observable(this);
};

var viewModel = new ViewModel();

kendo.bind(document.body, viewModel);

尽管您必须小心在构造函数中对“this”的引用,因为根据它们的执行时间,它们可能会引用不可观察的对象:
ViewModel = function() {
firstname = "Bob";

this.doSomething = function() {
// here 'this' does not point to an obervable, but 'that' does!
that.set("forename", "Craig");
}

var that = kendo.observable(this);
return that;
};

var viewModel = new ViewModel();

kendo.bind(document.body, viewModel);

关于mvvm - Kendo UI - 您可以将 View 模型创建为函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779773/

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