我正在设置变量
var extQty;
然后用户输入一些数据并提交,我返回一个带有extQty的json字符串。成功后,我正在更新变量:
success: function (result) {
window.extQty = result.extQty;
}
如果extQty超过网格的行数,我需要隐藏一个按钮。我怎样才能做到这一点?我尝试了以下但是没有看到变量更改,因为在extQty更新之前已经加载了它。
<!-- ko if: pagedList().length < extQty -->
如果我在上面更改extQty说3它有效......
答案 0 :(得分:4)
将变量设为ko.observable
并使其成为视图模型的一部分。
function viewModel() {
this.extQty = ko.observable(0);
this.pagedList = ko.observableArray();
//....
}
var myViewModel = new viewModel();
ko.applyBindings(myViewModel);
然后在您的AJAX success
:
success: function (result) {
myViewModel.extQty(result.extQty);
}
答案 1 :(得分:0)
尝试更新你的小提琴: -
<div data-bind="style: { display: (pagedList().length < extQty()) ? 'block' : 'none' }">
<p class="pull-right">
<a class="btn btn-primary" data-bind="click: $root.add" href="#" title="edit"><i class="icon-plus"></i>Add Extension</a>
</p>
</div>
如果我错了,请纠正我,当您使用绑定时,它允许标记根据条件显示或消失,基于条件为真或假。当您的条件为false时,当您在html中看到时,该元素将被注释掉代码。除非您刷新页面,否则无法更改。因此,使用可见绑定,标记保留在dom中,您可以使用Visible绑定来隐藏它或显示它...