【问题标题】:How can I part ofJSON-Array shown?如何显示 JSON-Array 的一部分?
【发布时间】:2017-05-17 22:49:54
【问题描述】:

我怎样才能只显示这部分

/db/User_DataDb/61500546-4e63-42fd-9d54-b92d0f7b9be1整个

对象 obj.sel_an:

[
    {
        "__zone_symbol__state":true,
        "__zone_symbol__value":"/db/User_DataDb/61500546-4e63-42fd-9d54-b92d0f7b9be1"
    }
]

我写了

console.log("obj.sel_an: ",
JSON.stringify(this.sel_and.__zone_symbol__value))

控制台显示此错误:'obj.sel_an: undefined.'

【问题讨论】:

  • this.sel_and[0].__zone_symbol__value
  • @dbandstra 你好,谢谢,它正在工作。如果我知道对象的确切索引,它就可以工作。如果一个对象有更多信息并且位于数据库集合中,我想复制该信息并将其保存在另一个数据库集合中。然后我想用Angular2一次显示两个集合的保存数据。你可能知道我该怎么做吗?我试图将此对象作为 Set() 和 Array() 保存到数据库中,并以 html 格式显示。但它不起作用。还是我应该试着去论坛问问?
  • 使用for 循环或this.sel_and obejct 上可用的forEach 函数。例如:this.sel_and.forEach(function (child) { console.log(child.__zone_symbol__value) });
  • @Misaz,你好,谢谢。我会用另一条评论回复你。

标签: arrays object typescript


【解决方案1】:

@Misaz 这是我在上一条评论中谈到的答案。

这是我的代码的一部分,或者更确切地说是一部分

db.Coll1.find()
         .equal('id', and.id)
.resultList(result => {
                result.forEach(db1 => {
                  if (db1.sel_and === null) {
                     db1.sel_and = new Set();                                                                
                }

               if (db1.sel_an === null) {
                    db1.sel_an = new Array();
               }


 db1.sel_an.push(promise1); // here is a JsonArray 
 db1.sel_and.add(promise1);  // here is a Set()



   var db_child: any;
   db_child = db1.sel_and.forEach(function (child) {console.log(child[0].__zone_symbol__value) });
   console.log(" db1.sel_and: ", db_child);
    return db1.update({ refresh: true });
    });

这是 JsonArray 的结果

  1. 通过 db1.sel_an.push(promise1);
    收藏起来

    [ { “__zone_symbol__state”:是的, "__zone_symbol__value": "/db/User_DataDb/f6fe3fe3-17f1-49d8-83c3-b36dda42026d" } ]

控制台输出:

ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
  __zone_symbol__state:true
  __zone_symbol__value:"/db/User_DataDb/d79ef084-17fc-441c-a8eb-13ba0a14f083"
  __proto__:Object
  1. 这是 Set() 的结果

-> “db1.sel_and.add(promise1);” -> 在Collection中保存为[null],但应该保存为 -> ["/db/User_DataDb/f55bf96d-2cb9-467f-8aa8-d60aced32fcf"]

Set(1) {ZoneAwarePromise {__zone_symbol__state: true, __zone_symbol__value: "/db/User_DataDb/f55bf96d-2cb9-467f-8aa8-d60aced32fcf"}}
  size:(...)
  __persistedSize__:1
  __persistedState__:Object
  __proto__:Set
  [[Entries]]:Array(1)
  0:null
  length:1

3.    

db_child = db1.sel_and.forEach(function (child) { console.log(child[0].__zone_symbol__value) });
     console.log(" db1.sel_and: ", db_child);

我用 child[0].__zone_symbol__value 尝试过,但出现错误:

Uncaught (in promise): TypeError: Cannot read property '__zone_symbol__value' of undefined
TypeError: Cannot read property '__zone_symbol__value' of undefined
    at http://localhost:3000/main.bundle.js:28348:116
    at Set.forEach (native)
    at http://localhost:3000/main.bundle.js:28348:69
    at Array.forEach (native)
    at http://localhost:3000/main.bundle.js:28336:44
    at ZoneDelegate.invoke (http://localhost:3000/polyfills.dll.js:4341:26)
    at Object.onInvoke (http://localhost:3000/vendor.dll.js:30326:37)
    at ZoneDelegate.invoke (http://localhost:3000/polyfills.dll.js:4340:32)
    at Zone.run (http://localhost:3000/polyfills.dll.js:4133:43)
    at http://localhost:3000/polyfills.dll.js:4720:57
    at ZoneDelegate.invokeTask (http://localhost:3000/polyfills.dll.js:4374:31)
    at Object.onInvokeTask (http://localhost:3000/vendor.dll.js:30317:37)
    at ZoneDelegate.invokeTask (http://localhost:3000/polyfills.dll.js:4373:36)
    at Zone.runTask (http://localhost:3000/polyfills.dll.js:4173:47)
    at drainMicroTaskQueue (http://localhost:3000/polyfills.dll.js:4553:35) 
    at ZoneTask.invoke (http://localhost:3000/polyfills.dll.js:4431:25)

如果我在 child 的末尾不写 [0],我会得到“未定义”。如果我写 child.__zone_symbol__value,我会出错。我怎样才能 省略“[0].__zone_symbol__value”而不会出错?是 有可能吗?

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多