我有一个使用 KnockoutJs ( 版本 2.3.0 )的ASP.NET 4视图。 页面加载正常,任何现有的带有数据绑定属性的元素都按照KnockoutJs的预期工作。 问题是,如果将HTML添加到包含已经被绑定的可以观察的数据绑定的页面上,它似乎没有订阅。 通过Ajax添加的HTML是一个 MVC PartialView 。
HTML ( 启动)
KOvar ViewModel = function() {
var self = this;
self.FullName = ko.observable('Bob');
self.Units = ko.observable(@Model.Units);
self.Price = ko.observable(@Model.Price);
self.SomeValue = ko.observable();
self.CalculatedCost = ko.computed(function() {
return self.Units * self.Price;
};
};
ko.applyBindings(new ViewModel());
AJAX ( 在. js 文件中)APP.GetPartialView = function () {
var _formValues = $("form#MyForm").serializeArray();
var _url = $Url.resolve("~/Shared/_PartialViewName/?" + $.param(_formValues));
function _success(html) {
$("#AdditionalData").html(html);
};
$.ajax({
url: _url,
data: _formValues,
cache: false,
dataType:"html",
success: _success
});
};
MVC控制器:PartialViewResult[HttpGet]
public virtual PartialViewResult _PartialViewName(AccountViewModel model)
{
return PartialView(model);
}
MVC PartialView HTML@model APP.AccountViewModel
@Html.Hidden("SomeValue", new { data_bind="value: SomeValue" })
@Html.LabelFor(m => m.FullName)
@Html.LabelFor(m => m.CalculatedCost)
HTML ( 在Ajax调用后)
新添加的html将不会接收到of的文本,计算成本的高度计算字段不会为同名的值写入值。
因这里,问题是如何告诉that这些元素只是"到聚会后",但已经为已经绑定的that确定了正确的数据绑定凭据。
更新:我已经更新了有关问题的代码引用 上面 。