我是durandal的新人。我试图使用mimosa skelton在durandal提供的演示应用程序中添加一个新模块。
我在this
中创建了以下模块步骤当我运行与数据绑定相关联的应用程序<li>
时,不会在DOM中填充。即,页面中没有数据显示。
但是当我使用console.log在myPage.js中打印数据时,它会提供所需的输出。
我的模块backend.js
define(function(require){
return {
getCustomers:function(){
//do some ajax and return a promise
return $.ajax({
url: 'http://graph.facebook.com/facebook?callback=?',
dataType: 'json',
}).promise();
}
};
});
my myPage.js
define(function (require) {
var backend = require('backend');
var ko = require('knockout');
return {
customer:ko.observableArray([]),
activate:function(){
var that = this;
return backend.getCustomers().then(function(result){
that.customer(result);
});
}
};
});
myPage.html下
<div>
<h2>FB Page Detail</h2>
<ul data-bind="foreach: customer">
<li data-bind="text: name"></li>
</ul>
</div>
获得的结果
{"about":"Facebook's mission is to give people the power to share and make the world more open and connected.","category":"Product/service","company_overview":"Newsroom: http://newsroom.fb.com\nInvestor Relations: http://investor.fb.com/","founded":"February 4, 2004","is_published":true,"talking_about_count":207120,"username":"facebook","website":"http://www.facebook.com/facebook","were_here_count":0,"id":"20531316728","name":"Facebook","link":"http://www.facebook.com/facebook","likes":96174118,"cover":{"cover_id":"10151496277356729","source":"http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash2/s720x720/247388_10151496277356729_2043388331_n.jpg","offset_y":0,"offset_x":0}}
我做错了什么?如何解决这个问题?
答案 0 :(得分:1)
我认为你的问题是关于你如何使用knockoutJS而不是durandal ..你正在将object
(单个对象)传递给你的observableArray
..虽然你应该传递对象数组或数组一个对象..
我已经制作了简单的 DEMO 来重现您的问题。
请注意,没有显示任何结果,但如果您将数据周围的 magic []
放入单个对象的数组中,则会显示Facebook
名称
答案 1 :(得分:-1)
不确定如何在此处应用绑定,您可能需要使用,因为您的模型在视图模型中设置为customer属性。
data-bind="html:customer.name"