javascript - 加载 JSON 并将其显示在我的 Angular 应用程序中的所有 View 上

标签 javascript json angularjs

我已经包含了index.html、app.js和json的代码。我已经创建了我需要的 View 。但我想加载 json 并将其显示在我的应用程序的所有 View 上。我可以在一个页面上调用 json,但不能在其他 View 上调用。请给我一些指示。

HTML Code:

<!DOCTYPE html>
<!--[if lt IE 7]>      <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html lang="en" ng-app="myApp" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html lang="en" ng-app="myApp" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en" ng-app="myApp" class="no-js"> <!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>My AngularJS App</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="bower_components/html5-boilerplate/dist/css/normalize.css">
    <link rel="stylesheet" href="bower_components/html5-boilerplate/dist/css/main.css">
    <link rel="stylesheet" href="app.css">
    <script src="bower_components/html5-boilerplate/dist/js/vendor/modernizr-2.8.3.min.js"></script>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
</head>
<body ng-app="myApp">


<div class="container">
    <div>
        <h1 style="text-align:right">Visa Cares</h1>
        <h3 style="text-align: left">Total Body Transformation</h3>
    </div>
    <div ng-controller="myController" >
        <ul class="nav nav-tabs">

            <li><a href="#/view1">Home</a></li>
            <li><a href="#/view2">Back</a></li>

        </ul>

        <button ng-click="clickButton()">List</button>



        <table border="0" cellpadding="3">

            <tr ng-repeat="x in modules">
                <td>{{x.filters}}</td>
                <td>{{ x.title}}</td>
                <td>{{x.feature}}</td>
                <td>{{x.order}}</td>

            </tr>
        </table>
<pre>
        <div ng-repeat="y in modules">
        {{y.buildings.building1.floors.floor1.rooms.room1 | prettyJSON}}
        </div>
</pre>
    </div>

    <!--[if lt IE 7]>
    <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
    <![endif]-->

    <div ng-view>

        Hello AJ
    </div>

    <div>Angular seed app: v<span app-version></span></div>

    <div>
        <footer>
            <ul class = "nav nav-tabs">

                <li><a href="#/view1">Campus Buildings</a></li>
                <li><a href="#/view2">Conference Rooms</a></li>
                <li><a href="#/view3">Hotteling Areas</a></li>
                <li><a href="#/view4">Huddle Rooms</a></li>
                <li><a href="#/view5">Shuttle Schedule</a></li>
            </ul>

        </footer>
    </div>

    <!-- In production use:
      <script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script>
      -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="app.js"></script>
    <script src="view1/view1.js"></script>
    <script src="view2/view2.js"></script>
    <script src="view3/view3.js"></script>
    <script src="view4/view4.js"></script>
    <script src="view5/view5.js"></script>
    <script src="components/version/version.js"></script>
    <script src="components/version/version-directive.js"></script>
    <script src="components/version/interpolate-filter.js"></script>
</div>
</body>
</html>




Controller Code:

'use strict';

// Declare app level module which depends on views, and components
var wfApp = angular.module('myApp', [
  'ngRoute',
  'myApp.view1',
  'myApp.view2',
    'myApp.view3',
    'myApp.view4',
    'myApp.view5',
  'myApp.version'
]).
    config(['$routeProvider', function($routeProvider) {

      $routeProvider.otherwise({redirectTo: '/view1'});
    }]);


wfApp.controller('myController', ['$scope', '$http', function($scope, $http) {

    $scope.clickButton = function() {
        $http.get('document.json').success(function(data) {

            $scope.modules = data.modules;
            $scope.modules = data.modules.buildings.building1;
        });
    }


}]);


I have a document.json which contains following data:

{"modules": [
          {
            "title": "Conference Rooms",
            "feature": "list",
            "filters": "Conference",
            "Order": 1,
            "icon": "conference.png"
          },
          {
            "title": "Hoteling Rooms",
            "feature": "list",
            "filters": "Hotel",
            "order": 2,
            "icon": "hoteling.png"
          },
          {
            "title": "Huddle Rooms",
            "feature": "list",
            "filters": "Huddle",
            "order": 3,
            "icon": "huddle.png"
          },
          {
            "title": "Shuttle Schedule",
            "feature": "shuttle_list",
            "order": 4,
            "csvInput": {
              "d1Pickup": [
                "8:00",
                "8:30",
                "9:00"
              ],
              "d4Pickup": [
                "7:50",
                "8:20",
                "8:50"
              ]
            },
            "icon": "shuttle.png"
          },
          {
            "feature": "map",
            "order": 0,
            "icon": "campus.png",
            "buildings": {
              "building1": {
                "order": 0,
                "id": "D1",
                "label": "D1 - 8910 Ridgeline Blvd",
                "floors": {
                  "floor1": {
                    "name": "1<sup>st</sup> Floor",
                    "order": 0,
                    "image": "floor1_map.png",
                    "rooms": {
                      "room1": {
                        "name": "Room 1",
                        "number": "D1-F1-1",
                        "occupancy": "12",
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Conference",
                        "coords": "100,100",
                        "hit_center": "80,80"
                      },
                      "room2": {
                        "name": "Room 2",
                        "number": "D1-F1-2",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Hotel",
                        "coords": "150,100",
                        "hit_center": "130,80"
                      },
                      "room3": {
                        "name": "Room 3",
                        "number": "D1-F1-3",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Huddle",
                        "coords": "200,150",
                        "hit_center": "180,130"
                      }
                    }
                  },
                  "floor2": {
                    "name": "2<sup>nd</sup> Floor",
                    "order": 1,
                    "image": "floor2_map.png",
                    "rooms": {
                      "room1": {
                        "name": "Room 1",
                        "number": "D1-F2-1",
                        "occupancy": "12",
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Conference",
                        "coords": "100,100",
                        "hit_center": "80,80"
                      },
                      "room2": {
                        "name": "Room 2",
                        "number": "D1-F2-2",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Hotel",
                        "coords": "150,100",
                        "hit_center": "130,80"
                      },
                      "room3": {
                        "name": "Room 3",
                        "number": "D1-F2-3",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Huddle",
                        "coords": "200,150",
                        "hit_center": "180,130"
                      }
                    }
                  },
                  "floor3": {
                    "name": "3<sup>rd</sup> Floor",
                    "order": 2,
                    "image": "floor3_map.png",
                    "rooms": {
                      "room 1": {
                        "name": "Room 1",
                        "number": "D1-F3-1",
                        "occupancy": "12",
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Conference",
                        "coords": "100,100",
                        "hit_center": "80,80"
                      },
                      "room2": {
                        "name": "Room 2",
                        "number": "D1-F3-2",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Hotel",
                        "coords": "150,100",
                        "hit_center": "130,80"
                      },
                      "room3": {
                        "name": "Room 3",
                        "number": "D1-F3-3",
                        "occupancy": 10,
                        "av": "Projector",
                        "phoneNumber": "xxx-xxx-xxxx",
                        "type": "Huddle",
                        "coords": "200,150",
                        "hit_center": "180,130"
                      }
                    }
                  }
                }
              }
            }
          }
        ],
        "settings": {
          "building": "D1",
          "floor": 4,
          "timeout": "120 (in seconds)",
          "cssOverride": "custom.css",
          "kiosk_coords": "200,200"
        }
      }

最佳答案

您应该尝试通过 Controller 将“ View ”作为部分返回。这样他们就可以使用相同的范围。否则,您需要在每个 View 中调用应用程序/ Controller 才能访问范围内的相同 json 数据。

关于javascript - 加载 JSON 并将其显示在我的 Angular 应用程序中的所有 View 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111431/

相关文章:

javascript - 有没有一种好方法可以确保在使用对象的代码之前创建对象?

javascript - lodash 按数组的属性数组过滤

node.js - 通过 nodemailer 在 Alexa Skill Fact 中发送电子邮件

jquery - 是否可以使用 css 来设置 div 的样式,使其显示在 Google map API 的全屏 map 上?

angularjs - AngularJS 中的范围未更新

javascript - record.factory 不是 Angular Javascript 页面上的函数错误

android - 如果模型的属性是私有(private)的,则 Retrofit Android 无法将 JSON 响应转换为模型

java - 为什么 Google Cloud API 会尝试以最终用户身份进行连接?

angularjs - 如何在 Jasmine 中重现 "10 $digest() iterations reached. Aborting"错误

javascript - 滑入滑出div