Articles of 克隆

如何将一个模板克隆到同一个类的多个父母?

我有一个单一的页面应用程序,当我打开同一个应用程序的多个窗口,写一些东西,它应该被复制到所有的应用程序。 但它只能在一个窗口中显示第一个。 我得到这个错误:未被捕获的DOMException:在'Node'上执行'insertBefore'失败:新节点被插入的节点不是这个节点的子节点。 这是我的尝试 let tempHistory = document.querySelector('#tempHistory') let cloneHistory = document.importNode(tempHistory.content, true) let prevEle = document.querySelector('.fldst') document.querySelectorAll('.chat-history').forEach(function (event) { // the new message cannot be inserted to new node parent that it's not the parent event.insertBefore(cloneHistory, prevEle) document.querySelectorAll('.userHistory').forEach(function (event) { event.innerHTML = document.querySelector('.userHistory').value = chatHistory }) }) html为克隆的模板 <div class="chat-history"> <div class="chat-message clearfix"> <!– […]

将javascript对象分配给新对象作为副本

我有这个在obj.arr对象的数组。 我把它分配给一个新的对象。 var obj_arr_new = obj.arr; 问题是当我修改obj_arr_new , obj.arr被修改了。 我不要那个。 我怎样才能使obj_arr_new成为obj_arr_new的副本,当我修改obj_arr_new , obj.arr是不变的? 我正在使用node.js v6。 我打开使用任何node.js模块。 有人告诉我lodash可以做这个工作。 使用lodash的答案是有帮助的。

应该是在应用程序逻辑处理之前克隆的input数据对象?

我工作在一个开源项目 – 对象文档映射器又名。 ODM在javascript ,我面临一个devise决定,我奋斗(相当simple但不easy )。 在ODM您可以定义一个Model对象来描述数据库中的数据文档。 当创build一个新的Model实例对象时,可以通过parameter passing它的数据值。 伪代码: var data = { username: 'james' email: 'james@email.com', country: { code: 'US', city: '' } }; // In case the data object would not be cloned, it would be mutated by the ODM var user = new UserModel(data); 现在,我所面临的决定是在应用程序(ODM)处理之前是否自动克隆模型中的data对象。 我倾向于select不克隆input数据。 我觉得在javascript社区中,通常克隆数据通常比所需要的要多,因为它可以使最终用户变得easy ( simple )。 从我的研究中,我发现一些类似和stream行的项目决定克隆数据,但我不确定这是一个正确的select,考虑到一个模型可以有大而复杂的数据模式,虽然没有任何区别在几十个Model实例对象的情况下,我认为这可能是一个问题,而使用例如:数百个Model对象。 […]

我应该克隆node_modules内的节点库来修改它吗?

我使用诗人博客/静态网站生成引擎,这是伟大的。 它目前是我的packages.json中列出的依赖项,所以我只是npm install它,并require在我的快递应用程序。 但是,我想要改变库中的一个行为(特别是构build“post.preview”的方式,现在只是简单地获取第一行,而且我希望能够configuration多行为每个职位)。 要做到这一点,我正在考虑克隆回购和做出改变。 但是我想知道我是否应该: 直接将其克隆到我的博客/ node_modules /诗人,并像往常一样require , 将其克隆到不同的文件夹并从不同的path要求。 请记住,我想很快发布到Heroku或Nodejitsu。 你有什么想法? 更新 :我有一个git回购与我的git回购下的克隆库的一些问题。 它以某种方式将整个文件夹添加为一个文件。 我立即从lib文件夹中删除“.git”,一切都恢复正常…我不知道这种行为的原因!

带有循环引用的Javascript深克隆对象

我从Dmitriy Pichugin的现有答案中复制了下面的函数。 这个函数可以深入克隆一个没有任何循环引用的对象 – 它的工作。 function deepClone( obj ) { if( !obj || true == obj ) //this also handles boolean as true and false return obj; var objType = typeof( obj ); if( "number" == objType || "string" == objType ) // add your immutables here return obj; var result = Array.isArray( obj ) […]

在lodash _.clone不工作?

我有 config.default_req = { foo: 'foo' } this.default_req = _.clone(config.default_req); this.default_req.body.data = 'bar'; 现在config.default_req.data等于'bar',为什么呢?我以为用lodash克隆应该只是复制对象,失去了原来的链接! 任何想法如何克隆/复制node.js中的对象? (v.0.10.40) 编辑:对于那些会得到这个问题,一个简单的克隆/复制function: var clone = function(source){ return JSON.parse(JSON.stringify(source)); };

下划线的Mongoose对象克隆和删除属性不工作?

我正在使用Mongoose,我想从我的Mongoose实例中删除_id属性,然后将JSON响应发送到客户端。 例: var ui = _.clone(userInvite); delete ui["_id"]; console.log(JSON.stringify(ui)); //still has "_id" property, why? 以前没有工作。 但是,如果我这样做: var ui = JSON.parse(JSON.stringify(userInvite)); //poor man's clone delete ui["_id"]; console.log(JSON.stringify(ui)); //"_id" is gone! it works! 我不明白为什么使用Underscore调用克隆的对象上的delete不起作用,但如果我做hacky JSON.string / JSON.parse,它的工作原理。 有关这种行为的任何想法?