Breeze - IE8中的元数据助手



我在IE8中使用Breeze .metadata-helper.js有一个问题。我已经包含了es5-shim和sham库。它在以下方面失败:makePropDescription(原型、财产)方法,同时尝试执行:定义属性(proto, propName,描述)带有消息"getter &

未能添加的属性是定义在:

中的DeclarationID
define([], function () {
var dt = breeze.DataType;
var defaultNamespace = 'Our.Custom.Namespace';

// Breeze Labs: breeze.metadata.helper.js
var helper = new breeze.config.MetadataHelper();
var addDataService = helper.addDataService.bind(helper);
var addTypeToStore = helper.addTypeToStore.bind(helper);
var setDefaultNamespace = helper.setDefaultNamespace.bind(helper);
var createMetadataStore = function () {
    return new breeze.MetadataStore();
};
var addDeclaration = function (store) {
    var et = {
        shortName: "Declaration",
        namespace: defaultNamespace,
        defaultResourceName: "Declaration",
        dataProperties: {
            DeclarationID: { dataType: dt.Int64, isPartOfKey: true },
            MRN: { dataType: dt.String },
            IssuingDate: { dataType: dt.DateTime },
            DeclarationStateCode: { dataType: dt.String },
            DeclarationStateID: { dataType: dt.Int64 },
            DeclarationType: { dataType: dt.String }
        }

    };
    return addTypeToStore(store, et);
};
   var initialize = function (dataService) {
   var store = createMetadataStore();
   addDataService(store, dataService);
   setDefaultNamespace(defaultNamespace);
   addDeclaration(store);  
   return store;
};
return {
    initialize: initialize
};
});

我使用的是Breeze v1.4.11和Metadata-Helper v1.0.5。

我很确定微风。metadata-helper插件不是为IE8设计的。Breeze本身可以在IE8下工作,但一般来说,大多数Breeze插件都没有经过IE8(及以下版本)的测试或认证,除非明确要求。这种情况下的具体问题是IE8不支持标准javascript类的Object.defineProperty。

也就是说,这段代码是免费的,你可以克隆并修改它用于IE8。只是对IE8及以下版本的需求一直在稳步下降,尝试编写符合IE8的组件是一件非常麻烦的事情,尤其是当你已经习惯使用与ES5兼容的javascript时。

相关内容

  • 没有找到相关文章

最新更新