【问题标题】:knockout.js observables location on JavaScript window or ko object在 JavaScript 窗口或 ko 对象上的 knockout.js observables 位置
【发布时间】:2020-04-15 01:07:31
【问题描述】:

我在解决一个使用 knockout.js 的非常复杂的单页 Web 应用程序时遇到了问题。 作为我调查的一部分,我试图找出 window 对象的位置,knockout.js 放置了创建的可观察对象。

使用 Chrome 的控制台,我从“ko”对象中搜索了很多对象,例如“ko.virtualElements”和“window”对象本身。

我找错地方了吗?

长话短说,使用 Chrome 的控制台,我想知道是否可以查看类似 -

window.ko.ListOfObservables

window.ko.ListOfObservables 会显示所有已加载的可观察对象。

注意:如果您好奇,我想弄清楚为什么可观察的功能在不同类型的导航上开始失败,但是在您回答这个问题时不要担心除非它提供了一些额外的见解。

【问题讨论】:

  • 不确定我是否收到了问题。通常,对于淘汰赛,您需要在视图模型中声明可观察对象,并且大多数开发人员使用“self”前缀。也许如果你输入“self”。在控制台中,您将看到已经创建的可能的 observables 列表。 knockoutjs.com/documentation/observables.html
  • 谢谢,UserEsp。 “自己。”确实给出了一个属性列表(很像“this.”)。那么哪个属性包含“可能的 observables 列表”?简而言之,这就是我的问题。

标签: javascript jquery knockout.js


【解决方案1】:

如果您选择其中一个根绑定节点,您可以通过两步方式查看当前选定的 DOM 元素的上下文,甚至查看视图模型。

  • 第一步是在浏览器的开发者控制台的“元素”选项卡中选择 DOM 节点,Chrome 和 Firefox 将其分配给控制台窗口中的 $0 变量。
  • 其次,您可以使用ko.contextFor 和数据级别ko.dataFor 获得淘汰赛的视图模型/上下文

因此,如果您将这些组合在一起,请在元素选项卡中选择主体节点;然后在控制台输入:

tldr; ko.dataFor($0) 你应该得到你想要的。

顺便说一句,如果您没有使用全局 applyBindings 而是绑定到特定元素,显然选择那个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 2011-10-04
    • 2014-04-18
    • 2013-07-10
    • 2017-03-27
    • 2020-09-14
    • 2011-01-27
    • 2023-04-11
    相关资源
    最近更新 更多