javascript - 具有命名模板的 Knockout 3.2 组件?

标签 javascript knockout.js knockout-components

我正在尝试使用 knockout 3.2.0 中的新组件系统。

目前没有太多文档,但这确实有效。

ko.components.register('price-input', {
  template: '<span>price-input</span>'
})

但是 template 绑定(bind)允许您指定一个已经存在于 DOM 中的模板名称,例如:

<script type="text/html" id="price_input">
  <span>price-input</span>
</script>

然后你可以这样做:

<div data-bind="template: {name: 'price_input'}"></div>

所以我尝试了这个:

ko.components.register('price-input', {
  template: {name: 'price_input'}
})

但它不起作用。有没有一种方法可以将命名模板与新组件一起使用,或者它们必须是内联的或由 AMD 加载的。

谢谢

编辑:在 RP Niemeyer 的回答之后,为了澄清这里是我尝试他的回答的模板:

<script type="text/html" id="ifx_price_input">
  <h4>PRICE INPUT <span data-bind="text: value"></span></h4>
</script>

这是组件代码:

ko.components.register('price-input', {
  template: {element: 'ifx_price_input'}
})

它确实加载了模板,但将其视为转义字符串。

想法?

最佳答案

您可以传递 element 属性,该属性可以是元素本身,也可以是作为元素 id 的字符串,例如:

template: { element: 'myTmpl' }

关于javascript - 具有命名模板的 Knockout 3.2 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705388/

相关文章:

javascript - Chrome开发者工具中的Console是如何实现的?

javascript - react : Sort function causing retroactive side effects my store?

javascript - 如何渲染任意深度的嵌套列表?

javascript - 如何在 knockout 和组件之间应用过渡效果

javascript - Node.js 回调

javascript - 通过javascript动态添加css到页面

javascript - 可观察数组的 knockout 计算项

javascript - 行属性的文本区域 knockout attr 绑定(bind)不起作用

data-binding - Knockout 3.2 组件数据上下文

javascript - knockout 组件选择选项