敲除帮助获取外部数据
knockout help getting external data
我刚刚完成了淘汰教程,现在我正在尝试从外部页面获取数据。
在教程中,他们使用以下代码:
self.seats = ko.observableArray([
new SeatReservation("Steve", "Standard (sandwich)", "34.95" ),
new SeatReservation("Paul", "Standard (sandwich)", "14.95" )
])
我想更新它,从一个外部文件中提取循环通过选项:
self.seats = ko.observableArray([
$.get( "scripts/test.js", function( data ) {
$(data.data).each(function(index, result) {
new SeatReservation(result.name, result.mealName, result.price )
})
})
)]
测试结构为:
var data = [
{
'mealName': 'Standard (sandwich)',
'price': '0',
},
{
'mealName': 'Main (sandwich)',
'price': '34.95',
}
];
我还需要做什么?
我在页面上包含了jQuery和Knockout。
我还必须从文件运行这个://因为它需要发送到的某个地方
所以我已经更新了我的代码来做这个
var newData = ko.utils.arrayForEach(data, function(item){
console.log(item)
console.log(item.firstName + " " + item.lastName + " " + item.price);
return new SeatReservation(item.firstName, item.lastName, item.price);
});
console.log("here");
console.log(newData);
self.seats(newData);
控制台正在按预期记录项目的数据,但返回没有执行任何操作,console.log(newData)返回未定义的
为什么会这样?
根据目前的情况,您正在丢弃ajax调用的结果。你需要做一些类似的事情
$.get( "scripts/test.js", function( data ) {
self.availableMeals = data;
});
然而,由于self.availableResults
不是一个knockoutjs ObservableArray,页面将不会通过ajax调用响应来自服务器的更改。
你会想做这样的事情。
self.seats= ko.observableArray();
$.get( "scripts/test.js", function( data ) {
var newData = ko.utils.arrayForEach(data, function(item){
return new SeatReservation("", item.mealName, item.price);
});
self.seats(newData);
});
相关文章:
- 使用外部数据创建仪表板(谷歌电子表格)-JavaScript
- D3.js强制布局带有外部数据的图形空白
- 使用外部数据创建体式任务
- Highcharts - 无法使用 JSON / 无 PHP 加载外部数据
- 加载外部数据并使其保持全局JavaScript
- 用于聚合外部数据的 JavaScript 设计模式
- 角度:在包含外部数据的ng重复上搜索过滤器
- 仅在 Tag-it 中为获取的数据创建标记.js希望验证任何外部数据的创建标记
- 将外部数据加载到chrome扩展程序的最简单方法是什么
- 计划脚本以使用外部数据更新数据库
- 在 d3.js 散点文件中使用数据数组而不是外部数据文件
- D3未显示来自外部数据的路径
- Donut Highcharts设置不同颜色的内部和外部数据
- 通过dbuezas在D3 Pie中添加外部数据
- 在JavaScript纯函数中使用外部数据/操作
- 页面正在获取外部数据.从那里
- 加载外部数据到谷歌地图和建立热图
- 在接收到所有外部数据后重新加载dataTable
- 敲除帮助获取外部数据
- Javascript从外部数据创建数组