javascript – Knockout 3.2组件与命名模板?

前端之家收集整理的这篇文章主要介绍了javascript – Knockout 3.2组件与命名模板?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在淘汰赛3.2.0中使用新的组件系统.

目前没有太多的文档,但是这样做是有效的.

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

但是,模板绑定允许您指定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'}
})

它加载模板,但将其视为转义的字符串.

想法?

解决方法

在v3.2.0 beta版本中,这种情况没有得到很好的解决,因此需要InternalFX的骇客.

这将在v3.2.0最后修正.它将按照您的期望工作 – 只需引用脚本,模板或textarea元素,其逻辑内容将被视为模板节点.

如果你有兴趣,修复和测试这个的提交在这里:https://github.com/knockout/knockout/pull/1454

猜你在找的JavaScript相关文章