我目前正在使用 DisplayTemplate 来显示我的模型的属性:
@Html.DisplayFor( m => m.TheProperty, "myTemplate")
模板输出图像的html,来源取决于模型(TheProperty)是否为空。
现在,我将视图中的所有绑定替换为淘汰赛绑定。所以看来我不能再使用 DisplayTemplates 了,可以吗?由于现在控件已绑定到 js ViewModel ,我将如何将模板传递给 Model ?
我目前正在使用 DisplayTemplate 来显示我的模型的属性:
@Html.DisplayFor( m => m.TheProperty, "myTemplate")
模板输出图像的html,来源取决于模型(TheProperty)是否为空。
现在,我将视图中的所有绑定替换为淘汰赛绑定。所以看来我不能再使用 DisplayTemplates 了,可以吗?由于现在控件已绑定到 js ViewModel ,我将如何将模板传递给 Model ?
KO 中的等价物是模板绑定,但是它的语法不是很好,就像
<div data-bind="template: { name: 'display-for-my-property', data: myProperty }"></div>
其中display-for-my-property是带有 myProperty 模板的脚本标签的 ID
如您所见,这个语法非常混乱,我制作了自己的库来解决这个问题
https://github.com/AndersMalmgren/Knockout.BindingConventions
使用我的 lib 相同的场景看起来像
<div data-name="myProperty"></div>
你可以扩展我的库,这样你就可以做到
<div data-display="myProperty"></div>
和
<div data-editor="myProperty"></div>