【问题标题】:Knockout Protected Observable and mapping pluginKnockout Protected Observable 和映射插件
【发布时间】:2012-11-05 04:13:38
【问题描述】:

受保护的 observable 需要传递给函数的参数,例如:

var item = function(param)
{
  var me = this;
  me.itemProtected = ko.protectedObservable(param);

}

我不知道 KO 映射插件的内部工作原理,但如果我使用它将 Json 数据映射到我的模型受保护的 observable 将无法工作。我认为它只是将属性映射为可观察对象并完全忽略受保护的可观察对象。绑定语法:

ko.mapping.fromJSON(data, null, viewModel);

有没有办法映射 json 数据并保留受保护的 observable?

您的帮助将不胜感激。

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:
    ViewModel = function(data)
    {
       this.itemProtected = ko.protectedObservable();
       return ko.mapping.fromJS(data, {}, this);
    
    }
    

    JSON 数据课程需要有一个名为 itemProtected 的成员才能工作

    edit:Disclamer,我不知道 protectedObservable 是什么,它不是核心 KO 库的一部分。

    编辑:

    【讨论】:

    • 没有不尊重的意思,但问题是关于受保护的 observable,所以如果你不知道它是什么,我根本不明白为什么要回答。
    • 添加一个链接到你正在使用的库,而不是一个冲洗器。我上面的代码适用于 pausableObservables 和其他第三方 observables。
    • 抱歉,我知道您的意图是好的,这是 Ryan Niemeyer 发布的演示小提琴:jsfiddle.net/rniemeyer/X9rRa 正如您所看到的,他正在通过参数手动将数据传递给函数。当我使用虚拟数据时,这对我有用,但是当我尝试映射从服务器检索到的数据时,受保护的 observable 停止工作。
    • 没关系,快 16:00 到了,我整天都在努力工作,很容易生气;)检查我的小提琴,我的上述解决方案似乎有效?
    • 我研究了 pausableObservables,它们在满足我的需求方面做得更好。然而,枚举对象上的每一个以暂停和恢复是一项繁琐的工作——我有一个复杂的视图模型。有什么方法可以暂停和恢复对象的所有属性?
    猜你喜欢
    • 2013-09-27
    • 2012-02-08
    • 1970-01-01
    • 2014-03-06
    • 2012-12-18
    • 1970-01-01
    • 2014-03-04
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多