Это моя первая попытка на некоторых нокаутах. Существует поле ввода, и значение, которое вы записываете в него, получает «отправлено» в список и отображается. Однако это не работает, и я предполагаю, что это связано с тем фактом, что this.prodname не ассоциируется с наблюдаемым массивом. Но я не могу понять, как это сделать.добавление значений из поля ввода в наблюдаемый массив и отображение его (knockout.js)
Мой код:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="knockout-3.0.0.js"></script>
<script type="text/javascript" src="app.js"></script>
<link rel="stylesheet" type="text/css" href="lt.css"/>
<title>eins</title>
</head>
<body>
<div id="main">
<form data-bind="submit:addValues">
<input type="text" data-bind="value:newprod, valueUpdate='afterkeydown'"></input>
<input type="text" data-bind="value:number,valueUpdate='afterkeydown'"></input>
<button type="submit">OK</button>
</form>
<ul data-bind="foreach:productname">
<li data-bind="text : $index"></li>
<li data-bind="text:prodname"></li>
<li data-bind="text:anzahl"></li>
</ul>
</div>
</body>
</html>
И app.js
$(document).ready(function() {
var mymodel = function() {
this.newprod = ko.observable("");
this.productname = ko.observableArray(""):
this.addValues = function() {
this.productname.push(this.newprod());
};
};
ko.applyBindings(new mymodel());
});
Я попробовал это, тоже:
this.productname.push({newprod: this.newprod() });
После прочтения этого поста: https://stackoverflow.com/questions/19419438/adding-an-item-to-an-observablearray-in-knockoutjs-when-using-mapping
Что касается Насколько я могу сказать, мой код напоминает этот пример: http://knockoutjs.com/examples/betterList.html
Однако, я не хочу, чтобы наблюдаемый массив был предварительно заполнен. Я хочу, чтобы значения поступали из поля ввода.
Thanx для вашей помощи!
Ааа, Allright, мне нужно передать новый объект в нажимной методом ... теперь я это вижу. Большое спасибо!! – user2791739