2016-12-02 8 views
0

タブテンプレートを使用して、チャットとチャットの詳細を表示します。データをjsonファイルに入れて、コードのように追加します:$ http.get( "http://abcd/Chats.json")。 データはチャット一覧に表示されていますが、詳細ページでは機能しません。外部JSONファイル - IONIC

.controller('ChatsCtrl', function($scope, Chats) { 
Chats.getChats().success(function(response){ 
$scope.chats =response; 
    }); 
    }) 

.controller('ChatDetailCtrl', function($scope, $stateParams, Chats) { 
$scope.chat = Chats.get($stateParams.chatId); 
    }) 

私の誤差がある

SERVICE 
angular.module('starter.services', []) 

.factory('Chats', function($http) { 
// Might use a resource here that returns a JSON array 

return { 
getChats: function() { 
return $http.get("http://abcd/Chats.json").success(function(response){ 
chats=response; 
return chats; 
    }); 
}, 

get: function(chatId) { 
for (var i = 0; i < chats.length; i++) { 
if (chats[i].id === parseInt(chatId)) { 
    return chats[i]; 
    } 
} 
return null; 
} 
}; 
}); 

CONTROLLER: 私は解決策の多くをテストしてみたが、私はまだエラーを取得しています...ここで

は私のコードであることができません未知のチャットのプロパティを読み取る.. 助けてください?

+0

不足している情報があります – Ladmerc

+0

はい、私もそうだと思いますが、どこから見つけることができませんか? – kimg

答えて

0

chatsを工場出荷時にはvarとして定義してください。

.factory('Chats', function($http) { 
    var chats; 
    ... 
+0

ありがとうございます。さて、私はこのエラーがあります: "未定義のプロパティ"長さ "を読み取ることはできません"。タブチャットのページはデータ+写真でうまく表示されますが、まだ詳細ページにアクセスできません。 – kimg

+0

**チャットはあなたが電話する前に 'getChats()' **内で正しく設定されていますか? 'get()'?詳細については、コンソール出力を追加してください。ところで、promise関数の中で変数を返すのは意味がありません。 –

+0

このような意味ですか?私はコンソールにオブジェクトと配列がよく見えます。 { var chats; return { getChats:function(){ return $ http.get( "http://abcd/chats.json").success( 'チャット'、function($ http)関数(応答){ チャット=応答; にconsole.log(チャット); }); }、 GET:関数(chatId){ 用(i = 0; iはchats.lengthを<; Iは++){ IF(チャット[I] .ID ===のparseInt(chatId)){ 戻りチャット[I];} }戻りNULL;} }}) ' – kimg

関連する問題