Это зависит от того, что вы хотите, чтобы ваш пользовательский опыт был. Вы хотите, чтобы поле DOB было полностью исключено (то есть не показано)? Или вы хотите, чтобы он отображался, но со значением по умолчанию? Вот способ сделать каждый из них:
Вы можете полностью избежать привязок, используя привязку if. Привязка if вычисляет выражение и, если true, обрабатывает содержащиеся элементы; в противном случае игнорирует содержащиеся элементы.
«Контейнер комментариев» очень полезен для размещения привязок if, например:
<!-- ko if:DOB -->
DOB <input data-bind="value:DOB" id="DOB" name="DOB" type=text></input>
<br>
<!-- /ko -->
С другой стороны, если вы хотите сохранить содержимое, но заменить нулевые или неопределенные значения значением по умолчанию (например, пробелом), вам нужно будет где-то написать код для захвата этого бизнес-правила. , Одним из способов является использование ko.computed (), описанное на knockoutjs.com.
Однако мои 2-центы таковы, что в конечном итоге легче идти вперед, и в свой конструктор добавьте наблюдаемое со значением по умолчанию:
var VM_Summary= function(name1,address,dob,ssn)
{
...
this.DOB=ko.observable(dob||'(none)');
this.SSN=ko.observable(ssn||'(none)');
}
Вы бы по-прежнему вызывали конструктор так же:
oVM_Summary=new VM_Summary('Jon','123 addr');