Javascript angularjs函数返回的数组是对象,而不是字符串
我在让下面的函数作为可用字符串返回时遇到了一些问题 我的代码是:Javascript angularjs函数返回的数组是对象,而不是字符串,javascript,angularjs,Javascript,Angularjs,我在让下面的函数作为可用字符串返回时遇到了一些问题 我的代码是: app.factory('Urls', ['$http', function($http) { var urls = {}; urls.getUrls = function () { return $http.get('json/dataUrls.json'); } return urls }]); app.factory('Emails', ['$http', 'Urls',
app.factory('Urls', ['$http', function($http) {
var urls = {};
urls.getUrls = function () {
return $http.get('json/dataUrls.json');
}
return urls
}]);
app.factory('Emails', ['$http', 'Urls', function($http, Urls) {
var dataUrl = Urls.getUrls().then(function(response) {
return response.data.emails;
});
console.log(dataUrl);
var query = {};
query.getItems = function() {
return $http.get('json/emails.json');
};
return query;
}]);
下面是console.log(dataUrl)的结果代码>我试图得到的是值字符串
f {$$state: {…}}
$$state
:
status
:
1
value
:
"json/emails.json"
__proto__
:
Object
__proto__
:
Object
Urls.getUrls()。然后(…)
返回一个promise(),一种用于保存对异步获取的值的“引用”的数据类型。因此,在dataUrl
上运行console.log
将返回一个对象,而不是字符串
为了获得这个值,您需要异步访问它。最好的方法是:
Urls.getUrls()。然后(…)
返回一个promise(),一种用于保存对异步获取的值的“引用”的数据类型。因此,在dataUrl
上运行console.log
将返回一个对象,而不是字符串
为了获得这个值,您需要异步访问它。最好的方法是:
您从var dataUrl=url.getUrls()获取的数据URL。那么(…
实际上是一个承诺,而不是字符串。我猜您的意图类似于下面的内容:
app.factory('url',['$http',函数($http){
var url={};
url.getUrls=函数(){
返回$http.get('json/dataUrls.json');
}
返回URL
}]);
app.factory('Emails',['$http','url',function($http,url){
var query={};
query.getItems=函数(){
返回URL.getUrls().then(函数(响应){
返回response.data.email;
}).then(dataUrls=>{//dataUrls这里是一个字符串,您可以使用它。
返回$http.get(dataURL);
});
};
返回查询;
}]);
您从var dataUrl=url.getUrls()获取的数据URL。那么(…
实际上是一个承诺,而不是字符串。我猜您的意图类似于下面的内容:
app.factory('url',['$http',函数($http){
var url={};
url.getUrls=函数(){
返回$http.get('json/dataUrls.json');
}
返回URL
}]);
app.factory('Emails',['$http','url',function($http,url){
var query={};
query.getItems=函数(){
返回URL.getUrls().then(函数(响应){
返回response.data.email;
}).then(dataUrls=>{//dataUrls这里是一个字符串,您可以使用它。
返回$http.get(dataURL);
});
};
返回查询;
}]);
请将您的代码放入plunker/fiddler/codepen并生成一个可运行的代码段好吗?使用JSON.stringify(dataUrl)
将对象转换为字符串好吗请将您的代码放入plunker/fiddler/codepen并生成一个可运行的代码段好吗?使用JSON.stringify(dataUrl)
将object转换为string谢谢你的解释和链接。我需要阅读一些文章才能理解我猜的概念!谢谢你的解释和链接。我需要阅读一些文章才能理解我猜的概念!看看代码,你可以传递数据URL,因为它在同一范围内。然后(dataUrls=>{return$http.get(dataUrls+'/emails.json');});
查看代码,您可以传递dataUrls,因为它在相同的范围内。然后(dataUrls=>{return$http.get(dataUrls+'/emails.json');});
app.factory('Urls', ['$http', function($http) {
var urls = {};
urls.getUrls = function () {
return $http.get('json/dataUrls.json');
}
return urls
}]);
app.factory('Emails', ['$http', 'Urls', function($http, Urls) {
Urls.getUrls().then(function(response) {
return response.data.emails;
}).then(function(emails){
console.log(emails);
});
var query = {};
query.getItems = function() {
return $http.get('json/emails.json');
};
return query;
}]);
app.factory('Urls', ['$http', function($http) {
var urls = {};
urls.getUrls = function () {
return $http.get('json/dataUrls.json');
}
return urls
}]);
app.factory('Emails', ['$http', 'Urls', function($http, Urls) {
Urls.getUrls().then(function(response) {
return response.data.emails;
}).then(function(emails){
console.log(emails);
});
var query = {};
query.getItems = function() {
return $http.get('json/emails.json');
};
return query;
}]);