0

这可能只需要一个通用的 javascript 答案,而不是特定于淘汰赛,但我想知道是否有一种方法可以获取我在下面创建的对象初始化程序中特定元素的名称。

例如,我有一个名为 EmergentWorkConcerns 的元素,它通过 create 函数被初始化为一个可观察数组,现在我传入一个字符串值“EmergentWorkConcerns”来构建模型。我发现自己对一堆不同类型的数组重复了这一点,如果可能的话,我想尽量减少魔术字符串的使用。

var ReportMapping = {
    EmergentWorkConcerns: {
        key: function (item) {
            return ko.utils.unwrapObservable(item.Id);
        },
        create: function (options) {
            return rowEntryModel(options.data, "EmergentWorkConcerns", options.parent);
        }
    },
    SomeOtherRowType: {
        key: function (item) {
            return ko.utils.unwrapObservable(item.Id);
        },
        create: function (options) {
            return rowEntryModel(options.data, "SomeOtherRowType", options.parent);
        }
    },
    AnotherRowType: ...
};

那么有什么方法可以从我的 create 函数中引用该 EmergentWorkConcerns 数组吗?

唯一公开的参数是“options.parent”(ReportMapping)、“options.data”(特定行)和“options.skip”。由于我们在调用函数时处于全局范围内,因此“this”指的是 Window 对象。

4

1 回答 1

0

根据淘汰赛文件

提供给create回调的options参数是一个 JavaScript 对象,其中包含:

  • data:包含此子项数据的 JavaScript 对象
  • parent:这个孩子所属的父对象或数组

options.parent应该给你你正在寻找的信息,它本身就是EmergentWorkConcerns.

于 2013-06-11T19:01:27.167 回答