用铆钉做模板时如何给值加上前缀?

How to prefix values when templating them with rivets?

我正在使用 rivets.js 库将数据模板化到我的应用程序中。我陷入了一种格式问题。如何在模板化时格式化值?

例如,我必须将用户的照片位置模板化到图像标签中,并且我正在从我的数据库中获取存储在服务器上的文件的名称。

这将是一个散列值,但我需要在它前面加上 /img/uploads/ 或类似的东西,并可能在它的后缀 .jpeg

我正在检查该值是否为空,这是我的代码:

<img rv-unless="user.photo" src="img/avatars/sunny-big.png" alt="me" data-toggle="modal" data-target="#myModal">
<img rv-if="user.photo" rv-src="user.photo" alt="me" data-toggle="modal" data-target="#myModal">
<i class="fa fa-camera"></i>

如果我做类似 rv-src="/img/uploads/user.photo" 的操作,显然是行不通的。如何解决这个问题?

我认为您的问题的解决方案是使用格式化铆钉。它们就像 AngularJS 中的过滤器并支持管道。

您可以按如下方式定义格式化程序:

rivets.formatters.imgPath = function(value){
  return '/img/uploads/' + value + '.jpeg'
}

然后您可以在标记中使用它,例如:

rv-src="user.photo | imgPath"