Посмотрите на образец here. Проблема заключается в том, что мне нужно, чтобы значение 0.00 оставалось в числовом текстовом поле, даже если это значение удалено в элементе управления. На данный момент он выглядит пустым в пользовательском интерфейсе. Может ли кто-нибудь посоветовать самые чистые решения проблемы?Сохранение значения по умолчанию для числового текста после удаления введенного значения
1
A
ответ
2
Вы можете достичь своей цели, проводя событие изменения виджета и изменив его значение, а также модель, когда она запускается.
<div id="view">
<div data-template="containertpl" data-bind="source: People"></div>
<button data-bind="click: AddNew">Add</button>
</div>
<script id="containertpl" type="text/x-kendo-template">
<div>
<label for="FirstName#:id#">Name</label>
<input name="FirstName#:id#" type="text" data-bind="value: FirstName"/>
<input data-role="numerictextbox" data-bind="value: Income, events: { change: numericChange }"/>
</div>
</script>
var viewModel = kendo.observable({
People: [
{id: 1, FirstName: "", Income: "0.00" },
{id: 2, FirstName: "", Income: "0.00" },
{id: 3, FirstName: "", Income: "0.00" }
],
numericChange: function(args) {
var numeric = args.sender;
if (numeric.value() === null) {
numeric.value(0);
args.data.set("Income", 0);
}
}
});
viewModel.AddNew = function(){
viewModel.People.push({id: viewModel.People.length + 1, FirstName: "Generated", Income: "0.00"});
};
$(document).ready(function(){
kendo.bind($("#view"), viewModel);
});