我有一个组件和一个子组件。子组件处理一些数据并将数据发送给父组件。angularjs绑定的有效方式 - 整个对象与单个值
所以我的流程是这样的:
component('parentComponent', {
controller: function() {
vm.onSubcomponentValueChange = function (obj) {
// convert data into some other format, lets say for example
vm.objAPIFormat = [];
for (value in obj.somevalue1) {
vm.objAPIFormat.push({
'somevalue1': value
'somevalue2': obj.somevalue2,
'somevalue3': obj.somevalue3
});
}
}
vm.onFormSubmit = function() {
// make an API call with some complex format of obj
// API call in service with vm.objAPIFormat
}
}
}
component('subComponent', {
bindings: {
inputObject: '<',
onInputObjectChange: '&'
}
controller: function() {
vm.$onChange = function (changes) {
if (changes.inputObject) {
vm.obj = changes.inputObject.currentValue;
}
}
//some complex logic with vm.obj.somevalue1 = []
//some complex logic with vm.obj.somevalue2 = ''
//some complex logic with vm.obj.somevalue3 = ''
vm.onSubcomponentChange= function() {
vm.onInputObjectChange(vm.obj);
}
}
}
现在的问题是,这是一种有效的方法?
将inputObject作为单个对象传递给子组件? 或将对象拆分为单独的绑定?像:
bindings: {
somevalue1: '<',
somevalue2: '<',
somevalue3: '<'
onSomeValue1Change: '&'
onSomeValue2Change: '&'
onSomeValue3Change: '&'
}