У меня есть несколько ящиков ввода, которые я хочу скрыть/показать на основе выбора пользователя.
Я могу добиться этого, имея отдельный зависимый доступ к каждому входу и, в свою очередь, делая зависимый доступным для наблюдения за родительским выбором.
viewModel.showField1= ko.dependentObservable(function () {
return viewModel.selectedType() ? IsFeatureVisible(viewModel, "BusinessFieldName1") : false;
}, viewModel
);
viewModel.showField1= ko.dependentObservable(function () {
return viewModel.selectedType() ? IsFeatureVisible(viewModel, "BusinessFieldName2") : false;
}, viewModel
);
Это довольно утомительно для каждого поля. Могу ли я привязывать элементы с помощью функции dependObservable, которая может принимать параметр? Важно то, что он должен срабатывать, когда родитель меняет
Другой вариант заключается в том, что когда родитель меняет, я просматриваю элементы и скрываю/скрываю, но для этого потребуется сопоставить имя элемента id ↔ имя поля.
Current
<tr data-bind="visible: showField1">
<tr data-bind="visible: showField2">
Желаемый
<tr data-bind="visible: showField('BusinessFieldName1')">
<tr data-bind="visible: showField('BusinessFieldName2')">