【发布时间】:2017-04-21 02:02:59
【问题描述】:
我有一个全局变量,我需要在 http get 调用后更新它。更新后,我需要将此更新后的变量传递给其他函数。我不明白什么是最好的方法来做到这一点。这是我的代码:
app.controller('myCtrl', function($scope, $http) {
var data = '';
$http.get("data.json")
.then(function(response) {
data = response.data;
});
vm.mapOptions = {
controls: {
navigator: false
},
center: [40, -35],
zoom: 3,
layers: [{
style: {
fill: {
color: '#1996E4'
},
stroke: {
color: '#FFFFFF'
}
},
type: 'shape',
dataSource: data
}],
shapeCreated: onShapeCreated,
shapeFeatureCreated: onShapeFeatureCreated
};
});
http调用后是否可以更新全局变量?
提前感谢您的帮助。
【问题讨论】:
-
这可能是任何 vm 的问题。您的代码应该更新数据源,但是如果该数据源发生更改,您确定 vm 会“重新渲染”吗?
-
你可以通过console.log(data)查看它的值是否在你期望的时候发生变化。
-
目前还不清楚您要在这里完成什么。通常,您应该使用服务而不是“全局变量”。此外,您没有显示在这里声明
vm的位置,或者如何使用dataSource,但是由于您将data声明为原始字符串,因此它可能无法按预期工作,尤其是在出现response.data之后成为 JSON....
标签: javascript angularjs