HTML:
<select class="form-control" name="paramType" ng-change="setParamC($index)" ng-model="row.ParameterT" ng-options="item.ReferenceValue for item in pagemodel.ParamTList" required></select>
<select class="form-control" name="paramCat" ng-change="validatePCat($index)" ng-model="row.ParameterC" ng-options="item.ReferenceValue for item in pagemodel.ParamCList|filter:{ReferenceParentCode:row.ParameterT.ReferenceCode , ReferenceParentDomain:row.ParameterT.ReferenceDomain}" required></select>
<select class="form-control" name="paramName" ng-change="setParamV($index,0)" ng-model="row.ParameterN" ng-options="item.ReferenceValue for item in pagemodel.ParamNList|filter:{ReferenceParentCode:row.ParameterC.ReferenceCode , ReferenceParentDomain:row.ParameterC.ReferenceDomain}" required></select>
У меня есть список объектов данных, которые возвращаются с сервера во внешний интерфейс посредством вызова ajax.Каждый объект содержит три свойства (ParameterT
, ParameterC
и ParameterN
), которые указывают на другие объекты.
У меня также есть три списка объектов, которые используются в качестве параметров для моих трех раскрывающихся списков.Эти три списка генерируются сервером и отправляются во внешний интерфейс с помощью одного и того же вызова ajax.
3 списка объектов для моих опций раскрывающегося списка и три свойства в моем основном объекте данных имеют одинаковый тип объекта.
Вот данные в моем первом списке, ParamTList
, как видно на переднем конце:
(2) [{…}, {…}]
0:
$$hashKey:"object:503"
ReferenceCode:1
ReferenceDomain:"AGG_TIER_PARAMETER_TYPE"
ReferenceParentCode:null
ReferenceParentDomain:null
ReferenceValue:"Static"
__proto__:Object
1:
$$hashKey:"object:504"
ReferenceCode:2
ReferenceDomain:"AGG_TIER_PARAMETER_TYPE"
ReferenceParentCode:null
ReferenceParentDomain:null
ReferenceValue:"Dynamic"
__proto__:Object
length:2
__proto__:Array(0)
, а вот объект ParameterT
:
{ReferenceDomain: "AGG_TIER_PARAMETER_TYPE", ReferenceCode: 2, ReferenceValue: "Dynamic", ReferenceParentDomain: null, ReferenceParentCode: null}
ReferenceCode:2
ReferenceDomain:"AGG_TIER_PARAMETER_TYPE"
ReferenceParentCode:null
ReferenceParentDomain:null
ReferenceValue:"Dynamic"
__proto__:Object
Объект ParameterT
, используемый в качестве ng-model
, идентичен одному объекту, используемому в списке ng-options
, за исключением свойства $$hashKey
.Я предполагаю, что именно поэтому привязка не происходит.Объект ParameterT
является дочерним объектом, но его родительский объект, основной объект данных, имеет свойство $$hashKey
.
Это правильно?Если ДА, как мне обойти это?Если НЕТ, что я делаю неправильно?
Я мог бы делать все это с помощью строк вместо объектов, но я бы потерял возможность фильтровать выпадающие списки на основе настроек предыдущего выпадающего списка.
В настоящее время это работает в производственном процессе, поскольку три дочерних свойства устанавливаются во внешнем интерфейсе путем циклического перебора всех объектов данных и последующего циклического перебора трех списков параметров для поиска совпадений.Это плохо работает, поэтому я пытаюсь переместить неэффективные подобные вещи на сервер.