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
所以基本上我发现我可以创建函数,通过在
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>