Я пытаюсь понять, что Knockout делает с элементами на странице, когда он обновляет значения в них из-за applyBinding.Нокаут - что срабатывает над элементом при изменении значения привязки?
Рассмотрим простой пример:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script src="../lib/jquery-1.7.1.min.js"></script>
<script src="../lib/knockout-2.0.0.js"></script>
<script>
$(function() {
$("#itemNumber").change(function() {
console.log('itemNumber');
});
//create The view Model
var product1 = {
id: 1002,
itemNumber: "T110",
model: "Taylor 110",
salePrice: 699.75
};
ko.applyBindings(product1);
});
</script>
</head>
<body >
<input data-bind="value: itemNumber" type="text" id="itemNumber" />
</body>
</html>
Когда я бегу страница T110 появится в моем поле ввода и, когда я изменить значение сообщения консоли отображается как я ожидал.
Но заметьте, это не срабатывает, когда applyBindings вызывается во время загрузки страницы, как я бы ожидать ...
Так что механизм не использует, чтобы изменить значение входного элемента? И то, что я действительно ищу, - это какой-то способ обнаружить это в самом элементе, так как это элемент управления, и я хотел бы скопировать реальное значение из скрытого поля в нужное место, но поддерживать любые значения, приложенные к нему ...
Благодаря
Спасибо, Но его не делать то, что я ожидал еще. Почему это изменение не срабатывает в любое время после: ko.applyBindings (product1); называется? Тем не менее, как-то отображается значение ... Этот конкретный код, похоже, не вызван. – Tim
Я действительно прошел через учебники. Но у меня есть случай для этой конкретной ситуации ... Я думаю, что нашел лучший способ сделать это, но это означает, что мой контроль должен зависеть от нокаута, который не всегда может быть так. – Tim