我从AJAX服务返回JSON并使用KnockoutJS绑定结果。
我的一个绑定是一个图像,我需要部分URL来自ViewModel,如下所示: https://graph.facebook.com/'+ facebookPageID +'/ picture?type = large'}“/>
如果您复制并粘贴构建的图像标记的结果,则会从Facebook页面提供有效图像。但是当绑定到src属性时,它似乎从路径中删除非字母数字字符。
这是我的问题http://jsfiddle.net/8rb8v/1/
的JSFiddle这是HTML:
<h1>Events</h1>
<button id="btnSearch">Click to Search</button>
<div class="myresult" data-bind="foreach: events">
<div>
Name: <span data-bind="html: Name"></span><br/>
facebookPageID: <span data-bind="html: facebookPageID"></span><br/>
Constructed Image Tag: <span data-bind="html: 'https://graph.facebook.com/' + facebookPageID + '/picture?type=large'"></span><br/>
<img width=100 height=100 border=1 data-bind "attr:{ src: 'https://graph.facebook.com/' + facebookPageID + '/picture?type=large' }" />
</div>
</div>
以下是代码:
var jsonData = {
"events": [{
"Name": "London marathon",
"facebookPageID": "71506449747"
}, {
"Name": "Great North Run",
"facebookPageID": "71506449747"
}]
};
// View model declaration
var EvViewModel = {
events: ko.observableArray([])
};
function getEvents() {
$.ajax({
type: 'POST',
dataType: 'json',
url: '/echo/json/',
data: { json: JSON.stringify(jsonData) },
success: function (data) {
EvViewModel.events(data.events);
$("myresult").fadeIn();
},
});
}
$(document).ready(function () {
$('#btnSearch').click(getEvents);
ko.applyBindings(EvViewModel);
});
由于
答案 0 :(得分:1)
您的标记无效:
<img width=100 height=100 border=1 data-bind "attr:{ src:
^
missing an equals sign
浏览器可能会尝试将data-bind
属性值转换为属性名称的一部分,从而删除非字母数字字符。
此外,您应始终在属性值周围使用引号:
<img width="100" height="100" border="1" data-bind="..." />