我创建了一个使用$ http获取数据的服务,这个数据存储在本服务的变量中,我创建了一个使用该服务创建带选项的标签选择的指令,这些选项是在服务中获得的,但这是我的问题,所获得的数据永远不会与指令连接。
服务和指令:
<div id = 'fixed'> I'm Fixed </div>
<div id = 'normal'> I'm Normal </div>
使用Chrome的DevTool我可以看到数据在$ http运行后更新,但数据未显示在选项中。
上面的代码是我需要做的一个例子。
答案 0 :(得分:1)
您的$http
调用会返回一个promise对象。将$http
调用包装在函数中并返回promise对象,然后在您的指令中调用此函数并解析promise对象并获取数据。
具体地,
getData(){
return $http({
method: 'GET',
url: 'urlToDataJson'
}).then(function(resp){
listOptions = resp.data
); // this returns a promise
}
然后在你的指令中解决这样的承诺:
MyService.getData().then(function(data){
console.log(data); // <-- this is how you access the result of your $http call
});
答案 1 :(得分:0)
你也可以这样做,
return $q(function (resolve, reject) {
$http({
method: 'GET',
url: 'urlToDataJson'
}).then(function(resp){
$scope.responseDate = resp.data;
resolve(responseData);
});
});