首页 > 解决方案 > 如何找出最初创建淘汰赛 observable 的位置(在哪个 .js 文件中)?

问题描述

以下.html代码片段检索名为 ko 的可观察对象的值title

<th data-bind="text: title"></th>

只知道.html文件,有没有办法系统地找出(回溯?),在哪里 - 在.js项目的哪个文件中 - 这个特定的titleobservable 最初是在哪里创建的?

如果是这样,如何实现?

淘汰赛3.4.2

标签: debuggingknockout.js

解决方案


假设您可以运行该项目,您可以尝试以下步骤(示例使用 Chrome 浏览器):

  1. 找到绑定到 observable 的 dom 元素:

    • 右键单击元素->检查
    • 在元素选项卡中,右键单击元素 -> 复制 -> 复制选择器
  2. 为该元素查找一些淘汰赛上下文以发现包含可观察对象的视图模型

    • 在控制台中:ko.contextFor(document.querySelector('<paste element selector>'))
    • 浏览$data(当前绑定的视图模型)或任何一个$parents(在 foreach-es 的情况下...)以查找包含可观察的视图模型名称
    • 复制视图模型的名称
  3. 找到包含视图模型的 javascript 文件:

    • 在开发工具中按 CTRL-SHIFT-F
    • 粘贴 viemodel 名称

在结果窗口中,您将找到包含此视图模型名称(以及可观察对象的声明)的所有文件。


推荐阅读