目前我从服务器得到一个非常混乱的响应,并且如果将所有内容存储在一个Object中,然后将其作为模型绑定在formly-form
上,那么在输入文本输入时会有很大的延迟。这是因为有3个数组,超过850个项目,据我所知,Angular Formly也会观察这些事情。
所以我决定将数据拆分为2个对象
formly-form
formly-form
模型。这是骨架:
$scope.allData = {}
$scope.formlyData = {}
$scope.initData = function() {
myService.get()
.then(function(response) {
$scope.allData = response.data
$scope.formlyData['important'] = response.data.important
})
}
还记得巨大的阵列吗?好吧,基本上他们应该存储在选择输入中,并且形式上我试图使它像这样:
var vm = $scope
$scope.formFields = [{
fieldGroup: [
{
'key': 'actors',
'type': 'select',
'className': 'col-sm-6',
'templateOptions': {
options: []
},
controller: function($scope) {
$scope.to.options = vm.allData.actors
}
}
]
}]
这不起作用,因为allData
在执行时为空,而后来由于$http
调用异步而填充。
好的,我尝试使用观察者:
var vm = $scope;
$scope.formFields = [
fieldGroup: [
{
'key': 'actors',
'type': 'select',
'className': 'col-sm-6',
'templateOptions': {
options: []
},
controller: function($scope) {
vm.$watch('allData', function(newVal) {
$scope.to.options = newVal.actors
})
}
}
]
]
但事情并不好,加载需要很长时间(响应时间为200毫秒)。这是因为我有大约10个具有相同行为的字段,然后在同一个对象上有很多观察者?
有任何更好的想法来处理这种情况或改进吗?感谢。