gpt4 book ai didi

javascript - 面临 knockout 绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-03 06:36:21 26 4
gpt4 key购买 nike

我有多个选项卡(A、B、C),并且在加载“C”选项卡时,模型属性应数据绑定(bind)到选项卡“c”。我面临数据绑定(bind)问题。

三个选项卡(A、B、C)位于另一个 View View A 内。

这是我的观点

 <div id="tabMain" style="width:1230px;height:auto;overflow:auto;">
<ul>
<li><a href="#A">A</a></li>
<li><a href="#B">B</a></li>
<li data-bind="click:loProvision"><a href="#C">C</a>

Here is my Tab 'c'



<div id="SubC">
<ul>
<li><a href="#tabC1">tabc1</a></li>
</ul>
<div id="tabC1" style="overflow:auto;">

<div>
@Html.HiddenFor(m => m.UID)
<div style="width:500px;height:20px;margin-left:30px">
<div >@Html.NCheckBoxFor(m => m.EnablePD, new { id = "cbPD", style = "vertical-align:middle;", data_bind = "checked:enablePD" }, Model.IsReadOnly)</div>
<div >
<label for="cbOrgDetailsPD">@Res.OrganizationStrings.Ect</label>
</div>
</div>
<div style="width:100%;margin-top:10px;margin-left:30px">
<div style="width:22%;">
<label for="ddPD">Strings.PlaceUsersInGroup</label>
</div>
<div style="width:45%">@Html.NDropDownListFor(m => m.PD, Model.groups, new { id = "ddPD", style = "width:270px;height:25px;vertical-align:middle;", , data_bind = "enable: enablePD"
}, Model.IsReadOnly)</div>
</div>
<div style="margin-top:20px;margin-left:30px">
<div >@Html.NCheckBoxFor(m => m.ProType, new { id = "cbType", style = "vertical-align:middle;", data_bind = "checked:enableing" }, Model.IsReadOnly)</div>
<div >
<label for="cbByType">@Res.Strings.Enableing</label>
</div>
</div>
</div>
</div>

包含选项卡的 View 具有 View 模型,我想在加载选项卡“c”时绑定(bind)选项卡“c”组件。

这是我的 JavaScript 代码:

function Intialize {
var model = new MainviewModel();
ko.applyBindings(model, document.getElementById(orgDetailsTab.getId()));
}

function MainviewModel() {
this.loadvision = function() {
if (isvisionsLoaded === false) {

var autoUrl = '/Org/OrgView?UID=' + UID + '&isReadOnly=' + isReadOnly;
loadvision();
}
};

}
var CAPDModel;

function loadvision() {
try {
$('#C').empty();
$.ajaxSetup({
cache: false
});
$('#C').load(visionUrl, function(responseText, textStatus, XMLHttpRequest) {

$("#SubC").tabs().addClass("ui-tabs-vertical ui-helper-clearfix");

isLoaded = true;

CModel = new organizationViewModel();
ko.applyBindings(CModel, document.getElementById(tabC1));

function orgViewModel() {
this.enablePD = ko.observable($('#cbOrgPD').is(':checked'));
this.enableCing = ko.observable($('#cbType').is(':checked'));
this.enableLicense = ko.observable($('#cbOrgDetailsLicenses').is(':checked'));
this.cansee = ko.observable(false);
this.canRemove = ko.observable(false);
}

}

我在

处遇到异常

ko.applyBindings(CModel, document.getElementById(tabC1));

我的要求是加载选项卡“tabC1”时,html 属性应该进行数据绑定(bind)(禁用和启用 html 字段)。

我最初将 CAPD 相关属性放置在“MainviewModel”中,但绑定(bind)并未发生。

所以我将 C 属性从“MainviewModel”移动到“tabC1”加载函数,但数据绑定(bind)仍然没有发生。

因此,我在“tabC1”div 加载函数内创建了一个新的 View 模型,并尝试在 div“tabC1”的加载上应用绑定(bind)。

如果方法错误,有人可以指导吗?或者让我知道如何实现它。

这是我遇到的错误详细信息

ko.applyBindings(CModel, document.getElementById(tabC1));

Unhandled exception at line 26076, column 17 in eval code

0x800a139e - JavaScript runtime error: Unable to parse bindings.

Message: ReferenceError: 'loadvision' is undefined;

Bindings value: click:loadvision

最佳答案

我找到了上述问题的解决方案,我改变了线路

ko.applyBindings(CAPDModel, document.getElementById(tabC1)); changed to

ko.applyBindings(CAPDModel, $("#tabC1")[0]);

关于javascript - 面临 knockout 绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38183983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com