javascript - 如何从 javascript 访问 knockout View 模型

标签 javascript knockout.js

我试图了解如何管理 Javascript 代码中的范围。创建 View 模型后,如何从 javascript 的其余部分访问它? (此代码中的最后一行生成“未定义”错误

注意:我发现了几篇关于 ko 的 function/var 之间差异的帖子,但没有人说使用 var 具有范围优势......所以我尝试了这两种方法。

//function AppViewModel() {
//    this.gridSize = ko.observable("30");
//    this.canvasWidth = ko.observable("600");
//    this.canvasHeight = ko.observable("600");
//    this.displayCoords = "Axial";
//    this.pixel="0";
//    this.hex="0";
//}
//ko.applyBindings(new AppViewModel());

var AppViewModel = {
    gridSize: ko.observable("30"),
    canvasWidth: ko.observable("600"),
    canvasHeight: ko.observable("600"),
    displayCoords: "Axial",
    pixel:"0",
    hex:"0"
};
ko.applyBindings(AppViewModel );

var test = AppViewModel.gridSize;

最佳答案

ko.observable 是一个函数,因此要引用可观察值,您必须有小括号

例如从上面的例子

var test = AppViewModel.gridSize();

发现这个很好的解释 http://knockoutjs.com/documentation/observables.html

关于javascript - 如何从 javascript 访问 knockout View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18413765/

相关文章:

javascript - knockout js中如何设置dropdown的初始默认值

javascript - 如何防止加载查询的 css 应用于整个页面?

javascript - 用户输入任意数字但只能存储可被 3 整除的数字并显示回来

javascript - 如何通过javascript设置图像尺寸? (通过 JS 提供的 SSL Logo ,无尺寸)

javascript - 页面加载时的 WKWebView JavaScript 通信

javascript - 确保在过滤器运行之前填充 Observable 数组

jquery mobile风格不适用于详情页的二次导航

javascript - 如何将 bootstrap 4 模态用作 "block ui"- 阻止输入并显示 "wait a minute.."标签的模态屏幕?

javascript - 将多个 knockout View 模型脚本绑定(bind)到一个 View

javascript - Knockout - 元素变得不可拖动 - HTML5 拖放