如何找出最初创建淘汰可观察对象的位置(在哪个 .js 文件中)?

How to find out where (in which .js file) a knockout observable is being created initially?

以下 .html 片段检索名为 title 的 ko observable 的值:

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

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

如果是这样,如何实现?

淘汰赛 3.4.2

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

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

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

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

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

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