首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Chrome控制台通过RequireJS访问Knockout ViewModel

使用Chrome控制台通过RequireJS访问Knockout ViewModel
EN

Stack Overflow用户
提问于 2013-03-09 20:28:24
回答 3查看 22.6K关注 0票数 22

我现在使用的是RequireJS,如何在Chrome控制台中访问KnockOut ViewModel变量?

在使用RequireJS之前,我遵循了名称空间模式,将所有内容都隐藏在一个全局变量中。我可以通过在Chrome控制台中输入以下内容来访问全局: window.namespaceVar。

但是现在我使用的是RequireJS,我所有的变量都隐藏在require函数后面。

代码语言:javascript
复制
require(['knockout-2.2.0', 'jquery'], function (ko, jQuery) {

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

    ko.applyBindings(new ViewModel());
}

那么我该如何访问示例中testVar的当前值呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-09 21:35:11

Knockout包括函数ko.dataForko.contextFor,您可以通过它们访问给定元素的KO视图模型信息。

因此,在控制台中,您可以执行以下操作:

代码语言:javascript
复制
var vm = ko.dataFor(document.body);

在您的示例中,testVar未公开,因此您仍然无法访问它。我假设你的只是一个样本,你的意思是:

代码语言:javascript
复制
var ViewModel = function () {
     this.testVar = ko.observable(true);
};

现在,使用上面的方法,您可以通过执行vm.testVar()来访问vm.testVar及其值

下面是关于这些函数的文档:http://knockoutjs.com/documentation/unobtrusive-event-handling.html

下面是如何使用chrome:http://devillers.nl/quick-debugging-knockoutjs-in-chrome/调试KnockoutJS的分步指南

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

票数 35
EN

Stack Overflow用户

发布于 2013-04-04 10:42:45

正如Ryan建议的那样,最快的方法是在控制台中使用ko.contextForko.dataFor来查看dom上元素的绑定上下文。

还有一个非常有用的Chrome扩展,它使用了这个原理,叫做KnockoutJS上下文调试器,可以在这里找到:

Chrome Web Store - KnockoutJS Context Debugger

它允许您检查一个元素,并在elements窗格的侧边栏中查看其上下文。最有用的是在一个页面上有多个绑定上下文,或者非常嵌套的绑定上下文。

票数 14
EN

Stack Overflow用户

发布于 2013-10-18 13:02:16

Require就是没有全局变量:

代码语言:javascript
复制
require(["knockout"],function(ko){ window.ko=ko;}); 

再次引入全局变量

您可以在控制台中使用:

代码语言:javascript
复制
require("knockout").dataFor($0);
require("knockout").contextFor($0);
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15310659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档