问题:我正在尝试从服务器获取一些数据来填充 cytoscape 图。当我从 javascript 访问范围时,它是未定义的。
尽管他们有很多关于这个/类似问题的帖子。一旦数据准备就绪(如果这是我遇到的问题),我无法找到有关如何解决从 javascript 文件访问范围的问题的解释。
我读到 http.get 方法是异步的?所以他们在执行后不会阻止任何东西。我想这就是我在访问范围时导致未定义错误的原因,因为数据尚未返回?我找到了一些关于此的信息,但不知道用什么来解决这个问题。我可以使用带角花括号的 HTML 中通常的方式访问数据,并且它可以工作。当我只是从控制器返回一些数据时,它也可以工作。
如果有人能指出我正确的方向,我会非常感激。
这是我试图运行的 javascript 文件,它抓取范围并将节点添加到 cytoscape 图中。
<script type="text/javascript">
window.onload = function() {
nodes = angular.element(document.querySelector('[ng-controller="DataController"]')).scope().nodes;
alert(nodes);
cy.add(nodes);
}
</script>
2. 从控制器调用工厂方法。
dataFactory.getNodes().then(function(data)
{
$scope.nodes = data;
});
3. http.get 出厂
_service.getNodes = function()
{
return $http.get(urlBase + "/nodes");
};
4. node.js 返回一些“节点”以添加到 cytoscape 图中
router.get('/api/data/nodes', function(req, res) {
console.log('sending some data');
var data = [
...
];
res.status(200).json(data);
});
我已经看到提到的“承诺”,所以我想我接下来会朝着那个方向前进......
谢谢