Javascript 何时何地使用数据绑定添加元素

Javascript 何时何地使用数据绑定添加元素,javascript,jquery,knockout.js,datatables,Javascript,Jquery,Knockout.js,Datatables,我的问题是,我不知道在哪里向脚本中添加$(ele.html('some html'),因为添加它要么太早,要么太晚。这是我的实际问题: 首先,我创建viemModel 现在您可以看到,我在应用绑定后创建DataTable,基本上按照以下顺序: 视图模型 主视图模型 自定义绑定 创建HTML 应用绑定到html 使用数据绑定创建html 问题: 如何在不进行infinte循环的情况下将绑定应用于该元素 所以基本上我发现我可以创建函数,通过在mainAdmin中创建新函数,用html动态更新$(“d

我的问题是,我不知道在哪里向脚本中添加
$(ele.html('some html')
,因为添加它要么太早,要么太晚。这是我的实际问题:

首先,我创建viemModel 现在您可以看到,我在应用绑定后创建DataTable,基本上按照以下顺序:

  • 视图模型
  • 主视图模型
  • 自定义绑定
  • 创建HTML
  • 应用绑定到html
  • 使用
    数据绑定创建html
  • 问题:
  • 如何在不进行infinte循环的情况下将绑定应用于该元素

  • 所以基本上我发现我可以创建函数,通过在
    mainAdmin
    中创建新函数,用
    html
    动态更新
    $(“div.dt-toolbar”)

    self.updateDTmenu = function () {
            $("div.dt-toolbar")
            .html('Rādīt <select data-bind="value: dtSelectValue"><option value="visus">visus</option><option value="aktīvos">aktīvos</option><option value="neaktīvos">neaktīvos</option></select> kuponus');
            ko.applyBindings(new mainAdmin(), $("div.dt-toolbar")[0]);
        }; 
    
    self.updatedMenu=函数(){
    $(“div.dt-toolbar”)
    .html('Rādīt visusaktīvoskeeltīvos kuponus');
    ko.applyBindings(新mainAdmin(),$(“div.dt-toolbar”)[0]);
    }; 
    
    然后在
    dataTable
    绑定中,而不是
    $(“div.dt-toolbar”).html('someHtml')编写此
    mainViewModel.mainAdminPage.UpdatedMenu()


    通过这种方式,它只将自身应用于元素,并且可以动态创建任何元素

    为什么不使用
    foreach
    对表进行绑定?您将某些“html元素”拉入视图模型,我认为这是一种糟糕的做法

    <tbody data-bind="foreach: { data: tableData, afterRender: a function }>
    <tr>
     <td></td>
     ...
    </tr>
    
    
    
    // --- mainView viewmodel
    var mainViewModel = {
        indexPage: new indexViewModel(),
        itemPage: new itemViewModel(),
        catPage: new categoryViewModel(),
        companyPage: new companyAdmin(),
        mainAdminPage: new mainAdmin()
    };
    
    // --Applied bindings
    ko.applyBindings(mainViewModel);
    
    self.updateDTmenu = function () {
            $("div.dt-toolbar")
            .html('Rādīt <select data-bind="value: dtSelectValue"><option value="visus">visus</option><option value="aktīvos">aktīvos</option><option value="neaktīvos">neaktīvos</option></select> kuponus');
            ko.applyBindings(new mainAdmin(), $("div.dt-toolbar")[0]);
        }; 
    
    <tbody data-bind="foreach: { data: tableData, afterRender: a function }>
    <tr>
     <td></td>
     ...
    </tr>
    
    <select data-bind="options: optionsData">
    </select>