Breeze.js-在em.exportEntities期间,非标度复杂属性会导致循环结构异常

Breeze.js-在em.exportEntities期间,非标度复杂属性会导致循环结构异常,breeze,Breeze,该问题具有标量复杂属性,已在前面报告,并在breeze 1.3.5中解决。 我仍然在Breeze1.4.5中看到它,具有非标量复杂属性。使用此元数据创建实体后,实体管理器上的exportEntities()方法失败,JSON.stringify中出现异常,抱怨循环引用 下面是一些复制问题的代码: var jsonMetadata = { "metadataVersion": "1.0.5", "namingConvention": "camelCase", "localQueryCo

该问题具有标量复杂属性,已在前面报告,并在breeze 1.3.5中解决。 我仍然在Breeze1.4.5中看到它,具有非标量复杂属性。使用此元数据创建实体后,实体管理器上的exportEntities()方法失败,JSON.stringify中出现异常,抱怨循环引用

下面是一些复制问题的代码:

var jsonMetadata = {
  "metadataVersion": "1.0.5",
  "namingConvention": "camelCase",
  "localQueryComparisonOptions": "caseInsensitiveSQL",
  "dataServices": [{"serviceName": "breeze/myservice/"    }  ],
  "structuralTypes": [
    {
      "shortName": "Address",
      "namespace": "mynamespace",
      "isComplexType": true,
      "dataProperties": [
        {"name": "street"},
        {"name": "city"},
      ]
    },
    {
      "shortName": "Person",
      "namespace": "mynamespace",
      "autoGeneratedKeyType": "Identity",
      "defaultResourceName": "Person",
      "dataProperties": [
        {"name": "_id", "dataType": "MongoObjectId", "isNullable": false,     "defaultValue": "",
          "isPartOfKey": true },
        {"name": "displayName", "dataType": "String"},
        { "name": "addresses",
          "complexTypeName": "Address:#mynamespace",
          "isScalar": false
        }
      ]
    }
  ],
  "resourceEntityTypeMap": {
    "Person": "Person:#mynamespace"
  }};

var manager = new breeze.EntityManager();
manager.metadataStore.importMetadata(jsonMetadata);

var person = manager.createEntity('Person', {displayName: "Joe Bob"});
var myAddresses = person.getProperty('addresses');
var myAddressProp = manager.metadataStore.getEntityType("Address").createInstance(
    {street: "Main", city:"Pleasantville"});
myAddresses.push(myAddressProp);

console.log("Complex property is a circular datatype, cannot convert to JSON - that's fine")
//JSON.stringify(person.addresses); // fails with error

console.log("... except that manager.exportEntities() doesn't handle that case!");
var entities = manager.exportEntities(); // also fails
JSON.stringify抱怨的循环引用似乎位于Address属性ComplexAspect的“parent”属性中


另外,如果有一种更简单的方法来填充地址数组,我将非常感谢您的帮助。

好的,从现在可用的Breeze v 1.4.6(或更高版本)开始,这应该得到修复

-------------原职------------------


这是一个错误。它将在本周晚些时候或下周初发布的下一版本中修复。而且。。。谢谢你的重播。我会把它寄回来的

今天晚些时候,我将尝试重新解释这一点。好的,谢谢。