0
我有一个可观察到的阵列AllItems
定义为制作淘汰赛可观察到的数组属性可观察
var ViewModel = function() {
var self = this;
self.AllItems = ko.observableArray([]);
}
它得到由数据从一个AJAX调用填充和我刚添加从Ajax调用直接接收到阵列的属性,而无需限定他们。
我在下面的HTML中使用它来填充表格。
var ViewModel = function() {
var self = this;
self.AllItems = ko.observableArray([]);
}
$(document).ready(function() {
ko.applyBindings(new ViewModel());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>
<table>
<tbody data-bind="foreach: AllItems">
<td>
<span>$</span><span data-bind="text: $data.RequestedPrice"></span>
</td>
<!-- ko ifnot: (Number(RequestedPrice) > Number(ItemDetails.SmPrice)) -->
<input type="button" disabled value="Approve" id="Approved" data-bind="click: $root.ApproveItem" style="background-color:#e1eae5 !important" />
<!-- /ko -->
<!-- ko ifnot: (Number(RequestedPrice) > Number(ItemDetails.SmPrice)) -->
<input type="button" disabled value="Approve" id="Approved" data-bind="click: $root.ApproveItem" style="background-color:#e1eae5 !important" />
<!-- /ko -->
<nobr>$
<input type="text" class="priceChange" onkeypress="return isNumberKey(event)" style="display:inline !important" data-bind="value: $data.RequestedPrice" />
</nobr>
</tbody>
</table>
因此,我已在上述HTML三件事情。首先,我只是显示请求价格的文本。第二我用它来禁用一个按钮,第三我使它成为一个可编辑的领域。
问题是,当我更改该值时,它不反映在文本中,也没有更新用于禁用按钮的第二种情况。有人能告诉我我需要做什么吗?
请添加您在HTML中绑定中使用的所有viewmodel部件。还添加模拟数据。 – connexo
为什么你有两次完全相同的按钮?另外,修正你的HTML结构,它是完全无效的。 – Tomalak