删除angular2

时间:2016-03-08 00:48:29

标签: javascript data-binding angular

Angular 2数据绑定很棒,但我似乎无法找到一种消除特定变量数据绑定的角度2方法。我的理由是我开始将我的应用程序挂钩到索引数据库并且它可以工作,但我不能允许临时缓存(只是所有索引数据库值的数组)受数据绑定(如果它是临时的缓存将不再镜像数据库)我的数据库是在angular2服务上。现在我已经找到了一种删除数据绑定的方法,但它并不完全是我的代码就是这个

app.copy=function(item){
    return JSON.parse(JSON.stringify(item,app.replacer),app.reviver);
}
app.reviver=function(key,value){
    if(value.fn){
        value=new Function(value.parameters,value.body);
    }else if(key==="time"){
        value= new Date(value);
    }
    return value;
};
app.replacer=function(key,value){
    if(typeof value ==="function"){
        value=value.toString(); 
        value={
            fn:true,
            parameters:value.match(/\(([\s\S]*?)\)/)[1].replace(/[\s\r\/\*]/g,""),
            body:value.match(/\{([\s\S]*)\}/)[1].replace(/[\t\r\n]/g,"")
        };
    }
    return value;
};
像我说的那样有效,但它并不漂亮。我可以在它们离开缓存之前对变量运行app.copy,这样它们就不会将数据绑定到任何东西。我想知道是否有更简洁的方法告诉角度2这个变量不是假设是数据绑定。如果没有,那么至少我能够在这里为其他人提供我的解决方案。

1 个答案:

答案 0 :(得分:0)

如果您建立"绑定"当务之急,你可以迫切地停止绑定。 Angular2目前不支持强制取消声明性绑定。

  • 仅将视图绑定到组件的字段。

  • 在值更改时触发事件的服务中使用observable。

  • 在组件中订阅observable并在服务中的值更改时更新组件中的字段。

  • 当组件中的值发生更改时,更新服务中的值。