【发布时间】:2014-10-27 21:54:26
【问题描述】:
我有一个 ViewModel,里面有一个 observable。每次我点击一个按钮时,我都会用 ajax 填充这个 observable:
$.ajax({
url: '/Contracts/Details/' + id,
dataType: 'json',
type: 'GET',
success: function (data) {
self.showContractDetail(true);
self.contractDetail(data.contract);
alert(self.contractDetail().Partner.Surname);
}
});
警报显示正确的值。但在我的 html 中,我有:
<h2>contract number <span data-bind="text: contractDetail.ContractNumber"></span></h2>
<h4>partner: <span data-bind="text: contractDetail.Partner.Surname"></span></h4>
但是什么也没显示。如果我将text: contractDetail. 替换为text: contractDetail().,则只显示第一个绑定。即:它显示contract number: 236578 和partner: <empty>。如果我评论data-bind="text: contractDetail().ContractNumber",那么姓氏就会出现。
对为什么会发生这种情况有任何帮助吗?我不想将contractDetail 绑定到我的viewModel。我希望我的 viewModel 包含一个带有复杂合同细节的 observable。
【问题讨论】:
标签: knockout.js