【发布时间】:2015-12-21 11:02:32
【问题描述】:
这是我第一次尝试使用 angularjs 和 ionic-framework。
我有一个示例 json 文件,我想在屏幕上显示其中的一些数据。 显示数据位有效,但我想用一些信息填充一个“详细信息”页面,这些信息存储在主 json 文件中,我需要使用 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 过滤器的结果是这个 -> “6”(对于 roomID = 6)。没有别的,它只是添加了语音标记
-
如果您尝试
{{rooms | json}}会发生什么。你看到 data.json 中的数据了吗? -
是的,有 {{rooms | json }} 我可以看到所有房间的数据,而不仅仅是我想要的房间(id:6)
-
好的,我会添加一个答案,给我几分钟 :)
标签: angularjs json ionic-framework ionic