Javascript Taming在客户端ORM中有许多/belongstone循环引用
我在我的例子中使用了angular,但这也是一个一般性的问题。我也知道其他前端ORM解决方案,如js数据和restacular,但情况不同 给定由多个Javascript Taming在客户端ORM中有许多/belongstone循环引用,javascript,angularjs,orm,circular-reference,Javascript,Angularjs,Orm,Circular Reference,我在我的例子中使用了angular,但这也是一个一般性的问题。我也知道其他前端ORM解决方案,如js数据和restacular,但情况不同 给定由多个Person实例组成的People集合: [ { name: "Bob" }, { name: "Dave" }, { name: "Sarah" } ] 每个Person实例如何能够(方法)将具有继承属性的自身新实例推送到其父集合中?假设一个Person实例如下所示: { name: "Bob", par
Person
实例组成的People
集合:
[
{ name: "Bob" },
{ name: "Dave" },
{ name: "Sarah" }
]
每个Person
实例如何能够(方法)将具有继承属性的自身新实例推送到其父集合中?假设一个Person
实例如下所示:
{
name: "Bob",
parent: [ /* circular reference to collection */ ],
extend: function(attrs) { /* returns new object */ },
create: function(attrs) {
var self = this;
//call factory method to create object
var person = self.extend(attrs);
//some http call to persist to backend
.then(function() {
//push new instance to parent so it's rendered in the view model
self.parent.push(person);
});
}
}
也许这种封装方法不好……我不确定。我试图创建一个通过双向绑定继承JSON字符串化循环引用(不好)的指令
指令
angular
.module("app", [])
.directive("appDirective", function() {
return {
scope: { data: "=appDirective" },
bindToController: true,
controllerAs: "vm"
};
});
html
<div app-directive="{foo: 'bar', info: vm.info}">{{vm.data}}</div>
如何在ORM中保留循环引用的奢侈,同时避开循环JSON stringify问题?您需要编写自己的stringify,将对象拉到引用数组中,并用引用数组键替换它们。或者你可以使用我发现有用的库
此外,如果您有兴趣自己尝试,则需要编写自己的stringify,将对象拉到引用数组中,并用引用数组键替换它们。或者你也可以使用我发现有用的图书馆,如果你有兴趣自己尝试,很高兴它能帮上忙。在核心javascript中似乎应该考虑一些东西(或者至少是角度),但事实就是这样。
this.info = {};
//setup circular reference
this.info.info = this.info