目标
使用 KnockoutJS 从 DOM 元素中读取内容。
问题
我的 HTML 中有一个产品列表。代码是这样的:
<li>
<div class="introduction">
<h3>@Model["ProductName"]</h3>
</div>
<form data-bind="submit: addToSummary">
<input type="number"
placeholder="How much @Model["ProductName"] do you want?" />
<button>Add product</button>
</form>
</li>
当我单击 时<button>Add Product</button>
,我想向 KnockoutJS 发送<h3></h3>
已提交元素内的文本。
使用 KnockoutJS 的文件是外部的并且独立于 HTML。它的名称是summary.js
,代码如下:
function ProductReservation(id, name, unity, quantity) {
var self = this;
self.id = id;
self.name = name;
self.unity = unity;
self.quantity = quantity;
}
function SummaryViewModel() {
var self = this;
self.products = ko.observableArray([
new ProductReservation(1, "Testing", "kgs", 1)
]);
self.addToSummary = function () {
// Do Something
}
}
我在想什么
HTML:
<li>
<div class="introduction">
<h3 data-bind="text: productName">@Model["ProductName"]</h3>
</div>
[...]
</li>
JS:
productName = ko.observable("text: productName");
但是,当然,没有成功——这不是正确的上下文或语法,只是为了说明。
所以我问:我需要做什么?