У меня есть форма со скрытым входом в моем приложении MVC, значение которого я хочу прочитать Knockout. К сожалению, наблюдаемая функция в Knockout Заменяет исходное значение в DOM с тем, что значение указано в скобках, так чтоКак получить нокаут для чтения значения из скрытого ввода
self.title = ko.observable()
изменяет значение скрытого ввода в поле пустым. Это было бы не так плохо, если бы у меня была пустая форма, которую пользователь должен заполнить. Я нашел несколько ответов на Stackoverflow, которые используют сложную пользовательскую привязку, но я просто отказываюсь верить, что что-то ЭТО просто требует такого сложного решения. Есть ли Knockout есть родной способ либо:
- Читать Существующее значение входов из DOM
- Bind существующих значений без первых их замен с начальным значением?
Вот DOM:
<div class="form-group has-success">
<input type="hidden" id="title" value="@RazorFunction('Title')" data-bind="value:title" />
<label class="control-label" for="message">@RazorFunction('Label')</label>
<textarea class="form-control" placeholder="@RazorFunction('Placeholder')" rows="5" cols="50" data-bind="value:message"></textarea>
<br />
<button class="btn btn-primary" data-bind="click:sendMessage">@RazorFunction('Send')</button>
</div>
Вот моя модель в .js файле:
var Model = function() {
var self = this;
self.message = ko.observable("")
self.title = ko.observable()
self.messages = ko.observableArray()
};
В вашей модели set 'self.title = ko.observable (@RazorFunction ('Title'))'. Это то, что я сделал, чтобы обойти эту проблему. Там не обойти перезапись. – Nkosi