2016-04-26 99 views
0

我正在使用Knockoutjs呈现用户配置文件页面。为此,我打电话给Web API服务,该服务返回用户详细信息及其个人资料图片。WebAPI Knockout JS图像绑定

var MessageFrom = { 
     FromUserProfileId: self.FromUserProfileId, 
     FromUserName: self.FromUserName, 
     FromUserPictURL: self.FromUserPictURL 
    } 




<div id="comments" class="comments" data-bind="with: viewModel"> 
        <div class="comment clearfix" data-bind="foreach: Messages"> 
         <div class="comment-avatar"> 
          <img class="img-circle" data-bind="attr:{'src': FromUserPictURL}" alt="avatar"> 
         </div> 
         <header> 
          <h3 data-bind="text: FromUserName"></h3> 
          <div class="comment-meta"><p data-bind="text: moment(DatePosted).format('LLL')"></p> </div> 
         </header> 
         <div class="comment-content"> 
          <div class="comment-body clearfix"> 
           <p data-bind="text: MessageBody"></p> 
          </div> 
         </div> 
        </div> 
       </div> 

从WebAPI返回的图像的URL是〜/ Content/Member/Image1.jpg的相对URL。与Image URL的绑定显示为“http://sitename.com/profile/~/Content/Member/Image1.jpg”。

一切伟大工程接受头像

我需要努力的东西上绑定,因为我无法改变从数据库里的路径。

感谢您的建议。

Regards,

+0

显示生成Url的代码。您可能需要先解析该路径,然后再从网络API中返回。你有权访问Web Api中的路径吗? – Nkosi

回答

0

您的绑定看起来没问题。对于初学者,我会使用您的IE或Chrome开发人员工具(F12)并手动更改图像的src以查明您的工作原理。

你说你收到此:〜/内容/会员/ Image1.jpg

将src设置为这应该工作:/Content/Member/Image1.jpg

你可以改变你的消息对象的客户端一旦你确定需要什么,但我认为这应该就足够了:

var MessageFrom = { 
     FromUserProfileId: self.FromUserProfileId, 
     FromUserName: self.FromUserName, 
     FromUserPictURL: self.FromUserPictURL.replace('~','') 
    }