這是我第一次嘗試angularjs和離子框架。Angularjs - 閱讀裏面的json文件
我有一個示例json文件,我想從屏幕上顯示一些數據。 顯示數據位的作品,但我想填充一個「詳細信息」頁面的一些信息存儲爲主json文件內的一個abject,並且我需要使用來自url的id選擇僅顯示我需要的數據。
下面是一些代碼:
App.js
angular.module('hgapp', ['ionic', 'hgapp.controllers', 'ngResource'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.details', {
url: '/details/:roomID',
views: {
'menuContent': {
templateUrl: 'templates/details.html',
controller: 'DetailsCtrl'
}
}
})
$urlRouterProvider.otherwise('/app/home');
});
Controllers.js
angular.module('hgapp.controllers', ['hgapp.services'])
.controller('AppCtrl', function ($scope, HGJson) {
HGJson.get(function (data) {
$scope.rooms = data.data;
})
})
.controller('DetailsCtrl', function ($scope, $stateParams, HGJson) {
$scope.roomID = $stateParams.roomID;
console.log($stateParams.roomID);
})
services.js
angular.module('hgapp.services', ['ngResource'])
.factory('HGJson', function ($resource) {
return $resource('json/data.json')
});
Data.json(只是一個簡單的例子)
{
tm: 00000000,
errors: 0,
data: {
{id: 0, name: Value 0, url:url-0},
{id: 1, name: Value 1, url:url-1},
{id: 2, name: Value 2, url:url-2}
}
details.html
<ion-view view-title="Details">
<ion-content>
<h1>{{roomID}}</h1>
</ion-content>
在詳細信息頁面即時打印roomID剛看看控制器(detailsCtrl)是否工作,並且我每次都打印正確的ID。現在,我陷入困境的是如何操作HGJson服務中的數據,以便它可以打印來自正確房間ID的數據。
我希望這個問題已經夠清楚了,如果不是的話,請隨時索要更多的說明。
非常感謝
編輯
最後我解決它增加這個我controller.js文件:
.controller('DetailsCtrl', function ($scope, $stateParams, HGJson) {
HGJson.get(function (data) {
angular.forEach(data.data, function (item) {
if (item.id == $stateParams.roomID)
$scope.currentRoom = item;
});
});
})
你嘗試過'json'過濾器嗎?在你的html中:'{{roomID | json}}' –
添加json過濾器的結果是this - >「6」(對於roomID = 6)。沒有別的,它只是增加了speexmarks – Nick
如果你嘗試'{房間| JSON}}'。你看到data.json的數據嗎? –