gpt4 book ai didi

javascript - View 模型外的 Knockout.js 调用方法

转载 作者:搜寻专家 更新时间:2023-11-01 05:02:09 24 4
gpt4 key购买 nike

我想让我的数据可以在我的 View 模型之外访问。所以我创建了一个 View 模型对象,但我无法绑定(bind)它的属性。请注意,在我的 View 模型中一切正常。

基本上是一个简化的伪代码:

function Users() {
name;
date;
}

function userHealthModel() {
function createUsers() { new Users[] };
}

self.userModel = ko.observable(new userHealthModel());
self.userModel.createUsers();

如果我在我的模型中调用 createUsers 方法,我的绑定(bind)工作正常。

这是一个 jsFiddle,请注意我的问题一直在 JS 的末尾,我评论了它: http://jsfiddle.net/fourgates/jpk22/1/

我是 JS 和 KO 的新手。不太确定如何使用 $root、$parent 等。请帮助编程爱好者!非常感谢!

最佳答案

我仍然不能 100% 确定我是否理解您正在尝试做的事情,但这里有一些关于您的 fiddle 代码的想法:

如果你有类似的东西

var self = this;

在全局范围内(= 不在函数中),this 指向窗口对象。因此,这没有任何意义。

self.userModel = ko.observable(new userHealthModel());

创建 View 模型的可观察对象并不是必需的——您不希望整个模型发生变化,对吧?它将始终保持用户模型,而不会突然变成“消息模型”或其他任何东西。

如果你想从外部调用 View 模型的方法,只需创建一个实例:

var userModel = new userHealthModel();
userModel.createUsers();

// Use "userModel" to access the methods and properties
// like you're using "self" inside the view model:
userModel.users2()[1].userId(5);

// now apply the binding to THE SAME view model
ko.applyBindings(userModel);

http://jsfiddle.net/jpk22/3/

如果这不是您要找的,请告诉我!

关于javascript - View 模型外的 Knockout.js 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960881/

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