数码资讯
双向绑定和解除angular.copy变量的解析
首先让我们看看示例代码。 数据: User.data:{资料} } {用户。 user1.data:{ {资料} } user1。 改变 复制 消息:{ {资料} } copyuser。 Angular.module('app,{ }) 控制器('copycontroller功能(范围){ / /身
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
首先让我们看看示例代码。
数据:
User.data:{资料} } {用户。
user1.data:{ {资料} } user1。
改变
复制
消息:{ {资料} } copyuser。
Angular.module('app,{ })
控制器('copycontroller功能(范围){
/ /身体…
($ scope.changedata1 =功能){
/主体…
范围。用户user1 = =范围。
Scope.user;
scope.user1.data美元=改变;
}
($ scope.copy =功能){
/主体…
范围。copyuser = angular.copy(范围。copyuser = angular.copy(
范围(用户);
}
});
正如你可以看到从上面的演示,当复制按钮被点击的COPYDATA价值成为这是旧的数据,和用户的价值是成功复制到copyuser。
当改变按钮被点击的用户和用户become'is改变的价值观,和copyuser值没有改变。此时,输入的输入框中更改值,用户user1的值都发生了变化,表明这两个是参考相同的变量,copyuser做不改变。
angular.copy可以取消双向结合的原则
这与Javascript中的引用类型有关。
javascript中的值类型
在Javascript中,值分为两种类型:原始值和引用值。
原始值:存储在堆栈中的简单数据字段,也就是说,它们的值直接存储在变量访问的位置;
引用值:存储在堆中,即存储在变量上的值是指针,指向存储对象的内存。
如下图所示:
Javascript中的对象是引用值,这意味着对象通过引用传递值。
所以在上面的代码中:
对象scope.user美元美元和scope.user1值都指向同一个参考。角,听众变化监测的对象引用的地址,所以当参考值的变化的对象,所有的对象都指向它会跟着改变。
因此,在角的情况下,双向绑定不能直接通过对象的分配来解除,所以移除双向绑定的方法是创建一个新对象,然后将原始对象的值赋给新对象,这不是Javascript的深层副本。
是的,angular.copy是深拷贝的角的方法。所以复制对象的angular.copy能与原对象的值的一致性,并不是指与旧对象相同的参考,从而实现对目标变量的双向绑定。
总结
以上就是本文的全部内容。希望本文的内容可以帮助你学习或使用angular.js。如果有任何疑问,你可以留言。
数据:
User.data:{资料} } {用户。
user1.data:{ {资料} } user1。
改变
复制
消息:{ {资料} } copyuser。
Angular.module('app,{ })
控制器('copycontroller功能(范围){
/ /身体…
($ scope.changedata1 =功能){
/主体…
范围。用户user1 = =范围。
Scope.user;
scope.user1.data美元=改变;
}
($ scope.copy =功能){
/主体…
范围。copyuser = angular.copy(范围。copyuser = angular.copy(
范围(用户);
}
});
正如你可以看到从上面的演示,当复制按钮被点击的COPYDATA价值成为这是旧的数据,和用户的价值是成功复制到copyuser。
当改变按钮被点击的用户和用户become'is改变的价值观,和copyuser值没有改变。此时,输入的输入框中更改值,用户user1的值都发生了变化,表明这两个是参考相同的变量,copyuser做不改变。
angular.copy可以取消双向结合的原则
这与Javascript中的引用类型有关。
javascript中的值类型
在Javascript中,值分为两种类型:原始值和引用值。
原始值:存储在堆栈中的简单数据字段,也就是说,它们的值直接存储在变量访问的位置;
引用值:存储在堆中,即存储在变量上的值是指针,指向存储对象的内存。
如下图所示:
Javascript中的对象是引用值,这意味着对象通过引用传递值。
所以在上面的代码中:
对象scope.user美元美元和scope.user1值都指向同一个参考。角,听众变化监测的对象引用的地址,所以当参考值的变化的对象,所有的对象都指向它会跟着改变。
因此,在角的情况下,双向绑定不能直接通过对象的分配来解除,所以移除双向绑定的方法是创建一个新对象,然后将原始对象的值赋给新对象,这不是Javascript的深层副本。
是的,angular.copy是深拷贝的角的方法。所以复制对象的angular.copy能与原对象的值的一致性,并不是指与旧对象相同的参考,从而实现对目标变量的双向绑定。
总结
以上就是本文的全部内容。希望本文的内容可以帮助你学习或使用angular.js。如果有任何疑问,你可以留言。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。