在我们的代码库中,我们混合了以下各项:
我发现后者更容易阅读。
我所指的示例与上述示例完全相同;即,它们不添加任何其他字符串内容。
我认为在Aurelia上也更容易。我对么?
同样,对于这些没有实际插值的特定情况
涉及,第一种形式有什么好处吗? (不是
少输入两个字符。)
最佳答案
给定您所显示的示例,我建议您使用选项2。它的确不是“在Aurelia上更轻松”,但更明确的是,您将该属性的值绑定(bind)到列出的属性。
以下是的原始答案
第一种选择的好处是,例如,当您拥有一个接受许多值但作为单个字符串的属性时。最常见的示例是class
属性。 class
属性在以空格分隔的列表中接受多个类:
<div class="foo bar baz"></div>
想象一下,我们只想基于VM
baz
上的 Prop ,从列表中添加或删除someProp
类,而保留其他类。要使用.bind
语法执行此操作,我们必须在VM上创建一个具有完整列表的属性,但要添加或删除baz
,该属性由someProp
的值确定。但是使用字符串插值绑定(bind),这变得更加简单: <div class="foo bar ${someProp ? 'baz' : ''}"></div>
您可以想象如何通过添加或删除多个类来扩展它。您可能会创建一个值转换器,以使用
.bind
语法执行此操作,但最终可能会导致可读性差。我可以想象一个正在创建的值转换器在使用中可能看起来像这样:
<div class.bind="someProp | toggleClass:'baz':'foo':bar'"></div>
我真的认为这比使用字符串插值语法更不易读。
顺便说一下,我上面想象的值转换器看起来像这样:
export class ToggleClassValueConverter {
toView(value, toggledClass, ...otherProps) {
return `${otherProps.join(' ')} ${value ? toggledClass : ''}`;
}
}
最好的部分是我仍在值转换器中使用字符串插值:-)
关于aurelia - .bind与aurelia中的字符串插值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42228379/