Knockout JS模板HTML不能正确渲染
Knockout JS Template HTML Not Rendering Properly
我有一个knockout模板,它工作得很好,直到我为了显示目的对它做了一个小的更改。现在的HTML呈现方式不同,这导致我的一些SCSS不应用某些样式。下面是当前模板:
<script type="text/html" id="dropDownTextBoxTemplate">
<div class="top-level-div-class">
<p class="paragraph-class">
<div>
<label data-bind="text: DisplayValue"></label>
</div>
<div>
<select data-bind="attr: { id: Name, name: Name }, options: Comparisons, optionsValue: 'Name', optionsText: 'DisplayValue', optionsCaption: 'Unselected', value: SelectedComparison"></select>
<!-- ko if: SelectedComparison() === undefined -->
<input type="text" disabled="disabled" data-bind="attr: { id: Name + '-value', name: Name + '-value', 'data-min-value': TextboxMinValue, 'data-max-value': TextboxMaxValue, 'data-format': TextboxFormat }, value: TextboxValue" />
<!-- /ko -->
<!-- ko ifnot: SelectedComparison() === undefined -->
<input type="text" data-bind="attr: { id: Name + '-value', name: Name + '-value', 'data-min-value': TextboxMinValue, 'data-max-value': TextboxMaxValue, 'data-format': TextboxFormat }, value: TextboxValue" />
<!-- /ko -->
</div>
</p>
</div>
</script>
我所做的改变是在标签、选择和输入控件周围添加div标签。下面是呈现的HTML。
<div class="top-level-div-class">
<p class="paragraph-class"></p>
<div>
<label data-bind="text: DisplayValue">My Display Value:</label>
</div>
<div>
<select data-bind="attr: { id: Name, name: Name }, options: Comparisons, optionsValue: 'Name', optionsText: 'DisplayValue', optionsCaption: 'Unselected', value: SelectedComparison" id="attendence" name="attendence">
<option value="">Unselected</option>
<option value="gtet">Greater than or equal to</option>
<option value="ltet">Less than or equal to</option>
</select>
<!-- ko if: SelectedComparison() === undefined -->
<input type="text" disabled="disabled" data-bind="attr: { id: Name + '-value', name: Name + '-value', 'data-min-value': TextboxMinValue, 'data-max-value': TextboxMaxValue, 'data-format': TextboxFormat }, value: TextboxValue" id="attendence-value" name="attendence-value" data-min-value="0" data-max-value="99" data-format="range">
<!-- /ko -->
<!-- ko ifnot: SelectedComparison() === undefined -->
<!-- /ko -->
</div>
<p></p>
</div>
正如你所看到的,段落标签是自己呈现的,而不是像在模板中那样围绕在内容周围。当额外的div被删除时,段落标记呈现在所有其他内容周围,这是期望的HTML输出,但是当我这样做时,UI元素没有正确对齐。我试过用span标签替换额外的div, HTML确实正确渲染,但再次UI控件不对齐。
尝试使用段落标记作为div。不允许在段落标记中包含div。
这是你应该尝试的改变。
<script type="text/html" id="dropDownTextBoxTemplate">
<div class="top-level-div-class">
<div class="paragraph-class">
<div>
<label data-bind="text: DisplayValue"></label>
</div>
<div>
<select data-bind="attr: { id: Name, name: Name }, options: Comparisons, optionsValue: 'Name', optionsText: 'DisplayValue', optionsCaption: 'Unselected', value: SelectedComparison"></select>
<!-- ko if: SelectedComparison() === undefined -->
<input type="text" disabled="disabled" data-bind="attr: { id: Name + '-value', name: Name + '-value', 'data-min-value': TextboxMinValue, 'data-max-value': TextboxMaxValue, 'data-format': TextboxFormat }, value: TextboxValue" />
<!-- /ko -->
<!-- ko ifnot: SelectedComparison() === undefined -->
<input type="text" data-bind="attr: { id: Name + '-value', name: Name + '-value', 'data-min-value': TextboxMinValue, 'data-max-value': TextboxMaxValue, 'data-format': TextboxFormat }, value: TextboxValue" />
<!-- /ko -->
</div>
</div>
</div>
</script>
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- 为什么在这个网站上不能通过JS访问元素
- node.js可以识别字符模式,但不能识别数字模式
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 为什么我不能在 node.js(浏览器化)的 require() 函数中使用变量作为参数
- Node.js & Express 不能用简单的 Bootstrap 表单发布/错误
- js滑动不'我不能在智能手机上工作
- JS下拉列表没有'不能在复制的HTML源中工作
- d3.js赢了'不能在shadowDOM中工作
- js 不能匹配 cookie 名称
- js不能在bs3ajax模式中工作
- JS函数如何/为什么不能'不能在代码中执行,但在chrome控制台中运行良好
- Sencha Touch、Apigee JS SDK和Phonegap可以在浏览器中工作,但不能在IOS中工作
- websocket可以使用http模块,但不能使用express(node.js)
- Vue.js orderBy不能正确使用大写和小写
- History.js没有'不能在内容脚本中工作
- 具有Obj和Cubemap的Three.js场景,接收THbindTexture:纹理不能用于多个目标
- Rails页面JS可以在真正的浏览器/手动测试中工作,但不能在PhantomJS&硒规格
- AngularJS和JS Math.max.apply()不能一起工作
- 不能调用未定义节点.js的方法“forEach”