AngularJS 两种方式将变量绑定到数组项
AngularJS two way binding variables to array items
要查看我的代码,请遵循此 link
我创建了一个处理项目数组的指令(它总是两个,因为它是 "from" 和 "to" 日期对)。
我想让数组项作为单独的值访问以供以后使用,所以我这样引用数组项
vm.data = ['data a', 'data b'];
vm.separateData = vm.data[0];
vm.otherData = vm.data[1];
当我在指令中实现双向绑定时,vm.data[0]
和 vm.data[1]
引用会更新,但 vm.separateData
和 vm.otherData
不会。
有没有办法让这项工作正常进行,或者我应该只重组我的应用程序的其余部分(在需要的地方)以适应数组项?
在我的 fiddle link 中(同上)尝试更改文本输入值,您就会明白我的意思。
vm.data[0] 是一个字符串,因此它是 javascript 中的原始数据类型,它是不可变的。因此,您将不可变字符串 'Data a' 绑定到 vm.separateData,这不是对数据 [0].
的引用
如果您想将对数组的引用复制到 vm.separateData 中,请尝试将您的字符串包装在其他 javascript 对象中,例如
vm.data = [{"value":"Data a"}, {"value":"Data b"}]
然后你可以参考
vm.separateData = vm.data[0];
并通过
访问该值
vm.separateData.value
要查看我的代码,请遵循此 link
我创建了一个处理项目数组的指令(它总是两个,因为它是 "from" 和 "to" 日期对)。
我想让数组项作为单独的值访问以供以后使用,所以我这样引用数组项
vm.data = ['data a', 'data b'];
vm.separateData = vm.data[0];
vm.otherData = vm.data[1];
当我在指令中实现双向绑定时,vm.data[0]
和 vm.data[1]
引用会更新,但 vm.separateData
和 vm.otherData
不会。
有没有办法让这项工作正常进行,或者我应该只重组我的应用程序的其余部分(在需要的地方)以适应数组项?
在我的 fiddle link 中(同上)尝试更改文本输入值,您就会明白我的意思。
vm.data[0] 是一个字符串,因此它是 javascript 中的原始数据类型,它是不可变的。因此,您将不可变字符串 'Data a' 绑定到 vm.separateData,这不是对数据 [0].
的引用如果您想将对数组的引用复制到 vm.separateData 中,请尝试将您的字符串包装在其他 javascript 对象中,例如
vm.data = [{"value":"Data a"}, {"value":"Data b"}]
然后你可以参考
vm.separateData = vm.data[0];
并通过
访问该值vm.separateData.value