使用Chrome控制台访问淘汰赛视图模型与RequireJS(Using Chrome Consol

2019-08-17 10:19发布

我现在该如何访问在Chrome控制台淘汰赛视图模型变量,我使用RequireJS?

使用RequireJS之前,我跟着一个命名空间模式,隐藏在一个单一的全球性的一切。 我可以通过键入以下到Chrome的控制台访问全球:window.namespaceVar。

但现在,我使用RequireJS,我的所有变量的需要功能背后隐藏的。

require(['knockout-2.2.0', 'jquery'], function (ko, jQuery) {

    var ViewModel = function () {
            var testVar = ko.observable(true);
        };

    ko.applyBindings(new ViewModel());
}

那么,如何将访问的当前值testVar的例子吗?

Answer 1:

淘汰赛包括功能ko.dataForko.contextFor ,这将使你获得给出的元素KO视图模型的信息。

所以,在控制台中,你可以这样做:

var vm = ko.dataFor(document.body);

在你的情况, testVar不外露,所以你仍然不能访问它。 我认为你是虽然只是一个样本,你的意思是这样的:

var ViewModel = function () {
     this.testVar = ko.observable(true);
};

现在,使用上面的方法你就可以访问vm.testVar做,它的值vm.testVar()

以下是我们对这些功能的文档: http://knockoutjs.com/documentation/unobtrusive-event-handling.html

这里是一个关于如何调试铬KnockoutJS一步指南: http://devillers.nl/quick-debugging-knockoutjs-in-chrome/

使用Chrome的$ 0_ $ 4的特征: https://developers.google.com/chrome-developer-tools/docs/commandline-api#0-4



Answer 2:

瑞安认为,最快的方式是使用ko.contextForko.dataFor在控制台上看到的DOM元素的绑定上下文。

还有,这里就是利用这一原理被称为KnockoutJS语境调试器,提供一个非常有用的Chrome扩展:

Chrome网上应用店- KnockoutJS语境调试

它可以让你检查一个元素,看看它在元素窗格中的侧边栏背景。 这是你有一个页面上的多个结合上下文,或非常嵌套结合上下文最有用的。



Answer 3:

要求是所有关于没有全局:

require(["knockout"],function(ko){ window.ko=ko;}); 

再次引入全局

您可以在控制台中使用:

require("knockout").dataFor($0);
require("knockout").contextFor($0);


文章来源: Using Chrome Console to Access Knockout ViewModel with RequireJS