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

标签 javascript jquery knockout.js knockout-mvc

我有多个选项卡(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/

相关文章:

javascript - 如何在 html 表体中使用 jQuery 或 javascript?

javascript - 向用户安全隐藏 jQuery 结果?

javascript - Jquery 动画最初在 Safari 中失败

javascript - knockout JS : Validation of Dropdowns inside the table

javascript - 引用错误: ko is not defined when loading from jQuery

javascript - 使 slider 步数指定为特定值

javascript - 具有月 View 和事件 View 的日期选择器?

javascript - Angularjs 从数组中获取值

jquery - 添加:after element on "select" options

jquery - 将jquery变量存储在django后端