如何从javascript访问knockout viewmodel

时间:2013-08-24 00:38:30

标签: javascript knockout.js

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

注意:我找到了几个关于ko函数/ 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;

1 个答案:

答案 0 :(得分:1)

ko.observable是一个函数,因此要引用一个可观察的值,你必须有brakets

e.g。来自上面的例子

var test = AppViewModel.gridSize();

找到了这个很好的解释 http://knockoutjs.com/documentation/observables.html