我正在将用户图像绑定到hogan模板的类型,并且代码实际上工作正常但我在控制台中遇到错误,因为它试图获取资源:localhost:#### /%7B%7BuserBlankImgUrl%7D%7D
唯一有意义的是它试图绑定到模板值而不是等待值。
完全披露:我的应用程序使用的是DurandalJS和knockoutJS,但我试图在下面显示相关代码。我将根据建议添加更多内容。
模板:
<img class="quarc-avatar-list-item" src="{{userBlankImgUrl}}" />
JS:
self.userImgUrl = ko.computed(function () {
return avatar.fromGravatar(self.email(), self.gender());
});
我尝试过的其他事情包括:
谢谢,
-Chris
答案 0 :(得分:1)
我注意到的第一件事是您的self.userImgUrl
与您的模板中使用的userBlankImgUrl
不一样 - 如果这是故意的,则不会从您发布的代码段中清楚显示。
但是,在某些时候,您的脚本会输出模板,而不会通过模板对象的render()
方法运行它。错误的请求是由/ a图像标记的src属性引起的,该标记的内容是“{{userBlankImgUrl}}”。我猜测你是在本地服务器上测试你的应用程序,所以它查找的地址是http://localhost/.../{{userBlankImgUrl}}
(除非你问题中的###不只是缩短/隐藏路径而且确实是从localhost请求:#### /%7B%7BuserBlankImgUrl%7D%7D - 无论哪种方式(或至少部分问题)相同)。
Hogan.js删除出现在其呈现的模板中的任何未定义的车把变量:
var template = Hogan.compile(
'<img class="quarc-avatar-list-item" src="{{undefinedVariable}}" />'
);
console.log( template.render({var1: "Test", var2: "Again"}) );
将输出到控制台:
<img class="quarc-avatar-list-item" src="" />
如果src属性中出现任何内容,或者出现{{templateVar}}
或null
值的任何undefined
,则您知道您的模板已输出而未经过正确的渲染方法