从 Backbone 集合中检索特定元素

Retrieving a specific element from a Backbone collection

考虑以下 backbone 集合:

我想做的是访问字段 'name'。这是我所做的:

this._selectedNodes.pluck('name').forEach((objectName) => {
    $objectListLi.append(`<li>${objectName}</li>`);
});

但我一直收到 "undefined" 结果。更奇怪的是,当我使用 "id" 遍历集合时,我得到了结果。

知道为什么会这样吗?我该如何解决?

编辑:

注意这里 'id' 已经存在于模型下的第一层中:

但是,'name' 字段仅出现在属性下:

这会不会是 pluck 找不到 'name' 的原因?或许 pluck 只能再往下一层?

编辑 2:

我尝试了同样的事情,但使用的是 map 而不是 pluck:

this._selectedNodes.map(function(model){
return model.get('name');})

同样的事情,我得到了未定义。所以这排除了采摘问题的可能性。

编辑 3:

Got it work like this:
this._selectedNodes.map(function(model){
return model.attributes.get('name');})

现在,我得到了名称的值。但是,我仍然无法将它集成到 foreach 循环中。任何的想法?

在某些时候,您的名字似乎变得不确定了?也许检查一下。 对于所有节点,'name' 的 属性 是否始终可用?

  this._selectedNodes.pluck('name').forEach((objectName) => {
      if (objectName !== 'undefined') // Any scope
            $objectListLi.append(`<li>${objectName}</li>`);
    });

终于成功了。我删除了 pluck 并改用了 map 。该解决方案不是很优雅,但这是唯一对我有用的解决方案。

        var names = this._selectedNodes.map(function (model) {
        return model.attributes.get('name');
    });

    names.forEach(function (objectName) {
        $objectListLi.append(`<li>${objectName}</li>`);
    });

我希望它能帮助到其他人,感谢所有试图帮助我的人。