Javascript 带有外部JSON文件的Ionic框架
我有一个不知道如何解决的问题,我有一个IONIC Tabs模板,希望添加一个外部JSON文件来显示,而不是默认显示的模板好友列表 这是我的app.js文件Javascript 带有外部JSON文件的Ionic框架,javascript,json,angularjs,ionic,Javascript,Json,Angularjs,Ionic,我有一个不知道如何解决的问题,我有一个IONIC Tabs模板,希望添加一个外部JSON文件来显示,而不是默认显示的模板好友列表 这是我的app.js文件 .state('tab.friends'{ url:“/friends”, 观点:{ “tab friends”:{ templateUrl:'templates/tab friends.html', 控制器:“FriendsCtrl” } } }) .state('tab.friend detail'{ url:“/friends/:fr
.state('tab.friends'{
url:“/friends”,
观点:{
“tab friends”:{
templateUrl:'templates/tab friends.html',
控制器:“FriendsCtrl”
}
}
})
.state('tab.friend detail'{
url:“/friends/:friendId”,
观点:{
“tab friends”:{
templateUrl:'templates/friend detail.html',
控制器:“FriendDetailCtrl”
}
}
})
我猜angular正在访问$scope.friends,而这仍然是一个承诺。您是否尝试过使用.state定义中的resolve语句解析变量
app.js应该如下所示:
.state('tab.friends', {
url: '/friends',
views: {
'tab-friends': {
templateUrl: 'templates/tab-friends.html',
controller: 'FriendsCtrl',
resolve: {
allfriends: function(Friends) {
return Friends.all(); }
}
}
}
})
.factory('Friends', function($http, $q) {
var friends = [];
return {
all: function(){
var dfd = $q.defer();
$http.get("http://yanupla.com/apps/ligajaguares/equipos.json").then(function(response){
friends = response.data;
console.log(friends);
dfd.resolve(friends);
});
return dfd.promise;
},
get: function(friendId) {
for (var i = 0; i < friends.length; i++) {
if (friends[i].id === parseInt(friendId)) {
return friends[i];
}
}
return null;
}
}
});
控制器应为:
.controller('FriendsCtrl', function($scope, allfriends) {
$scope.friends = allfriends;
})
我认为您需要使用$q来正确解析,因此服务需要如下所示:
.state('tab.friends', {
url: '/friends',
views: {
'tab-friends': {
templateUrl: 'templates/tab-friends.html',
controller: 'FriendsCtrl',
resolve: {
allfriends: function(Friends) {
return Friends.all(); }
}
}
}
})
.factory('Friends', function($http, $q) {
var friends = [];
return {
all: function(){
var dfd = $q.defer();
$http.get("http://yanupla.com/apps/ligajaguares/equipos.json").then(function(response){
friends = response.data;
console.log(friends);
dfd.resolve(friends);
});
return dfd.promise;
},
get: function(friendId) {
for (var i = 0; i < friends.length; i++) {
if (friends[i].id === parseInt(friendId)) {
return friends[i];
}
}
return null;
}
}
});
.factory('Friends',函数($http,$q){
var-friends=[];
返回{
全部:函数(){
var dfd=$q.defer();
$http.get(“http://yanupla.com/apps/ligajaguares/equipos.json)然后(函数(响应){
friends=response.data;
console.log(朋友);
决心(朋友);
});
回报dfd承诺;
},
获取:函数(friendId){
for(var i=0;i
关于这一点的更多信息,我建议阅读爱奥尼亚的以下公式:
此外,这对我理解承诺的概念有很大帮助:
您是否有使用console.log(response.data)的功能?有任何响应吗?是的,我使用了console.log(response.data)它正确地显示了JSON对象,就像console.log(friends)一样,但我需要在我的模板(tabs friends.html)中查看它太棒了!帮了大忙,这真的帮了我的忙!谢谢!这是我在Stackoverflow中的第一个问题,大家都很快帮了我很多忙,感谢大家的回答。