动态渲染和删除HTML knockoutjs
Dynamically render and remove HTML knockoutjs
所以我有一个奇怪的问题。我正在迭代一个ko foreach:,我有两个"if"语句。
ifnot: row.disabled
//this html
if: row.disabled
//that html
所有行在页面加载时禁用。我的页面的格式是这样的
**Enabled**
//empty
**Disabled**
thing1
thing 2
thing 3
这很好。它像预期的那样工作……除了一件小事。ifNot有一个div,我需要另一个插件。这会产生意想不到的副作用。"启用行时显示的Html"仍然在那里,只是缺少了一些子元素。
<!--ko foreach blah in thing-->
<div class="i need this to be here">
<!--ko ifnot: row.disabled-->
html to display when row is enabled
<!--/ko-->
</div>
<!--/ko-->
副作用是,当我getElementById,然后querySelectorAll(html显示…)它得到所有的行,当,对于这个用例,行不能在那里,如果他们被禁用。
我需要在行状态发生变化时动态呈现或从页面中删除此html。我正在尝试这样的东西,我已经看到了模板:绑定,但我不知道如何使用它。
请,如果你能外行的模板绑定为新手,或弄清楚如何绑定什么我有,或修改我有什么下面添加和删除html从dom动态,那将是美妙的。
注:没有jQuery
self.template = ko.observable();
self.toggleTemplate = function (row) {
var template = ko.observable();
if (!row.disabled) {
self.template(enabledRowTemplate);
}
else {
self.template(null);
}
};
模板绑定的简单例子,希望对大家有所帮助
<!--ko foreach blah in thing-->
<div class="i need this to be here">
<!-- ko template: template --><!-- /ko -->
</div>
<!--/ko-->
<script type="text/html" id="enabledRowTemplate">
html to display when row is enabled
</script>
<script type="text/html" id="disabledRowTemplate">
html to display when row is disabled
</script>
和JS中的
self.template = ko.computedObservable(function(){
return self.enabled ? 'enabledRowTemplate' : 'disabledRowTemplate' // or {name: templateName, data: templateData} instead of template name string
});
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- KnockoutJS-打印html片段
- Knockoutjs 绑定到复杂的 html 对象
- 获取动态插入的 HTML 以使用 knockoutjs
- KNOCKOUTJS HTML 绑定不起作用
- 如何在Chrome Packaged App中使用KnockoutJs进行MVVM?它不允许在html中使用内联JS
- 使用knockoutjs虚拟元素动态创建html部分
- Knockoutjs将biding应用于多个html节点
- KnockoutJS:使用'html'绑定,新元素不绑定
- 如何在HTML注释中输出KnockoutJs值
- 知道为什么knockoutjs会从页面中删除所有html内容吗?
- 如何用空容器knockoutjs在html绑定中显示可观察对象
- 动态渲染和删除HTML knockoutjs
- 如何在同一HTML页面上的脚本之间传递KnockoutJS模型
- knockoutjs在html上使用逻辑或启用绑定
- 如何使用knockoutjs切换html元素的可见性