1

我是主干 js 的新手,我的第一次交互似乎很完整。问题是这样的,
我做了一个这样的模型

window.Dir = Backbone.Model.extend({
                defaults: { 
                  "Name": "", 
                  "ChildNodes": new window.FSNodeCollection() },
                GetFullName: function () { this.get("id"); }
            });

window.FSNodeCollection是我制作的其他一些收藏。new window.FSNodeCollection()

正如你会注意到的,我已经根据我读过ChildNodeswindow.FSNodeCollection()
的内容将 ChildNodes 属性的值设置为这个值 但是当我使用这个模型时

var fsNode = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "dir1",
                })
            });
var fsNode2 = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "dir2",
                })
            });
var subDir1Node = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "subDir1",
                    ChildNodes:new window.FSNodeCollection()
                })
              });
            fsNode.get("Node").get("ChildNodes").push(subDir1Node);

subDir1Node添加到ChildNodes两者中fsNodefsNode2
我做错了什么?

当我尝试做这样的事情时

var fsNode = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "dir1",
                    ChildNodes:new window.FSNodeCollection()
                })
            });
var fsNode2 = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "dir2",
                    ChildNodes:new window.FSNodeCollection()
                })
            });
var subDir1Node = new window.FSNode({
                Type: "dir",
                Node: new window.Dir({
                    Name: "subDir1",
                    ChildNodes:new window.FSNodeCollection()
                })
              });
            fsNode.get("Node").get("ChildNodes").push(subDir1Node)

问题不再存在。

4

1 回答 1

1

问题是它们都引用同一个数组,您需要做的是确保在创建模型时初始化数组(您可以使用初始化方法,也可以分配一个函数来分配收藏)。

你可能想看看这些问题

Backbone.js 模型中的数组本质上是静态的?

为什么 Backbone.js 模型的新实例包含预定义默认值的附加值?

于 2012-05-11T16:43:41.370 回答