为什么$ http响应数据没有以角度js显示?
问题描述:
我做。我现在用这个指令 https://github.com/ONE-LOGIC/ngFlowchart
当我把静态数据..它显示输出请我plunker http://plnkr.co/edit/d2hAhkFG0oN3HPBRS9UU?p=preview
在角JS指令的例子,但是,当我使用$ HTTP要求,作出同样的JSON对象。它不显示使用$ http请求。我有相同的数据对象作为静态
http://plnkr.co/edit/Vts6GdT0NNudZr2SJgVY?p=preview
$http.get('data.json').success(function(data) {
console.log(data)
var arr = data
var model={};
var new_array = []
for (var i = 0; i < arr.length; i++) {
var obj = {};
obj.name = arr[i].name;
obj.id = arr[i].id;
obj.x = arr[i].x;
obj.y = arr[i].y;
obj.color = '#000';
obj.borderColor = '#000';
var p = {};
p.type = 'flowchartConstants.bottomConnectorType';
p.id = arr[i].con_id
obj.connectors = [];
obj.connectors.push(p);
new_array.push(obj);
}
console.log('new array')
console.log(new_array)
model.nodes=new_array;
var edge = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i].children.length > 0) {
for (var j = 0; j < arr[i].children.length; j++) {
var obj = {};
obj.source = arr[i].con_id;
obj.destination = arr[i].children[j].con_id;
edge.push(obj);
}
}
}
model.edges=edge;
console.log(edge)
console.log("model")
console.log(JSON.stringify(model))
$scope.flowchartselected = [];
var modelservice = Modelfactory(model, $scope.flowchartselected);
$scope.model = model;
$scope.modelservice = modelservice;
})
图表看我plunker
有没有更新?
答
它现在的工作。
问题出在我们第一次加载指令时,它没有参数值。所以,当chart指令尝试初始化没有参数的图表时,它会得到一个错误。所以,它不会工作了。
如何解决问题?
只是在页面加载时给出一个虚拟参数。我已经给出了虚拟模型,因为
$scope.model = model;
$scope.modelservice = modelservice;
因此,首先您的图表将显示基于虚拟值的图表。之后,它使用来自服务器的数据填充图表($http.get()
)
根据Plunkr,您的数据未找到。响应代码是404并且响应是: '{ “statusCode”:404, “error”:“Not Found” }' 由于您只提供'.success()'(顺便说一句,不推荐使用,请考虑切换到'.then()'),您无法捕获错误。 – BobChao87
对不起,我会更新我的plunker – user944513
http://plnkr.co/edit/Vts6GdT0NNudZr2SJgVY?p=preview – user944513