【问题标题】:Cannot get Knockout JS to applybindings in Adobe Air applications无法让 Knockout JS 在 Adob​​e Air 应用程序中应用绑定
【发布时间】:2014-08-17 04:26:06
【问题描述】:

我正在尝试使用带有 adobe air 应用程序的 knockout.js 库将数据从我的 HTML 元素绑定到我的视图模型。构建似乎成功,并且没有收到其他人注意到的任何安全沙箱错误,但不确定绑定不成功的原因。这是我对选择下拉菜单的一些标记:

<select id="version" data-bind="options: app_versions, 
                                optionsCaption: 'Choose your app version. . .',
                                optionsText: name,
                                value: chosenVersion">

这是我用来应用绑定的代码。 ui是使用jquery加载文档后声明的对象:

ui = {

    init : function () {
        log("UI INIT", "Initializing user interface");
        ko.applyBindings(new this.viewModel());
    },

    viewModel : function () {
        this.app_versions = constants.versions;
        this.chosenVersion = ko.observable();
    }

}

ui.init() 在 DOM 完全加载后调用。所有变量都按预期记录,所以我知道数据在视图模型中。问题是选择框永远不会按预期获取元素。就好像 DOM 没有更新一样。

有什么想法可以与 Adob​​e AIR 一起工作?

【问题讨论】:

  • 你检查过答案了吗?如果有帮助,你能接受吗?
  • 还没有。我很抱歉。今天会这样做。

标签: javascript jquery knockout.js air


【解决方案1】:

我认为这是因为您错过了 optionsText 绑定属性中的引号(它应该在引号中,因为它是数组属性名称,而不是视图模型的属性)。因此,只需像这样更新您的标记:

<select id="version" data-bind="options: app_versions, 
                            optionsCaption: 'Choose your app version. . .',
                            optionsText: 'name',
                            value: chosenVersion">

demo

【讨论】:

  • 你是对的!太棒了,感谢您注意到我的疏忽。很高兴知道 Knockout 可以与 AIR 一起使用。
猜你喜欢
  • 2016-06-27
  • 2010-10-17
  • 1970-01-01
  • 2012-03-01
  • 2013-06-07
  • 2011-01-14
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多