使用Angular

时间:2015-08-11 18:48:11

标签: javascript json angularjs

我有这样的代码:

JBenchApp.controller('CaseListCtrl', ['$scope',
  function ($scope) {
      // Case list stuff here
      $scope.cases = [
          {
              'number': '30-2013-0069378-PR-PL-CJC',
              'title': 'Baumgartner - Probate',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Petition for Final Distribution',
              'event2': ''
          },
          {
              'number': '30-2013-00649408-PR-PL-CJC',
              'title': 'Dupaquier - Probate',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Petition - Other',
              'event2': ''
          },
          {
              'number': '30-2011-00510275-PR-PL-CJC',
              'title': 'Baker - Conservatorship',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Accounting',
              'event2': 'Review Hearing'
          },
          {
              'number': '30-2010-00334622-PR-PL-CJC',
              'title': 'Montero - Minors Compromise',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Review Hearing',
              'event2': ''
          },
          {
              'number': '30-2011-005260282-PR-PL-CJC',
              'title': 'Reed - Conservatorship',
              'time': '9:00 am',
              'event': 'Petition - Other',
              'event2': ''
          }
      ];

      $scope.departments = [
          {
              'dept': '1'
          },
          {
              'dept': '1A'
          },
          {
              'dept': '2'
          },
          {
              'dept': '2A',
          },
          {
              'dept': '2B'
          },
          {
              'dept': '2C'
          },
          {
              'dept': '2D'
          },
          {
              'dept': '3'
          },
          {
              'dept': '4'
          },
          {
              'dept': '5'
          },
          {
              'dept': '6'
          },
          {
              'dept': '7'
          },
          {
              'dept': '8'
          },
          {
              'dept': '9'
          },
          {
              'dept': '11'
          },
          {
              'dept': '12'
          },
          {
              'dept': '13'
          },
          {
              'dept': '14'
          },
          {
              'dept': '15'
          },
          {
              'dept': '16'
          },
          {
              'dept': '17'
          },
          {
              'dept': '18'
          },
          {
              'dept': '19'
          },
          {
              'dept': '20'
          },
          {
              'dept': '21'
          },
          {
              'dept': '22'
          },
          {
              'dept': '23'
          }
      ];


  }]);

我想将数据移动到外部文件。我现在有一个case.js文件(.json不能在我的本地机器上工作),它有这样的数据:

[
          {
              'number': '30-2013-0069378-PR-PL-CJC',
              'title': 'Baumgartner - Probate',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Petition for Final Distribution',
              'event2': ''
          },
          {
              'number': '30-2013-00649408-PR-PL-CJC',
              'title': 'Dupaquier - Probate',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Petition - Other',
              'event2': ''
          },
          {
              'number': '30-2011-00510275-PR-PL-CJC',
              'title': 'Baker - Conservatorship',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Accounting',
              'event2': 'Review Hearing'
          },
          {
              'number': '30-2010-00334622-PR-PL-CJC',
              'title': 'Montero - Minors Compromise',
              'sequence': '',
              'time': '9:00 am',
              'event': 'Review Hearing',
              'event2': ''
          },
          {
              'number': '30-2011-005260282-PR-PL-CJC',
              'title': 'Reed - Conservatorship',
              'time': '9:00 am',
              'event': 'Petition - Other',
              'event2': ''
          }
];

我已将代码更改为:

JBenchApp.controller('CaseListCtrl', ['$scope', '$http', 
  function ($scope, $http) {
      // Case list stuff here
      $http.get('json/cases.js').success(function (response) {
          $scope.cases = response;
      });

      $scope.departments = [
          {
              'dept': '1'
          },
          {
              'dept': '1A'
          },
          {
              'dept': '2'
          },
          {
              'dept': '2A',
          },
          {
              'dept': '2B'
          },
          {
              'dept': '2C'
          },
          {
              'dept': '2D'
          },
          {
              'dept': '3'
          },
          {
              'dept': '4'
          },
          {
              'dept': '5'
          },
          {
              'dept': '6'
          },
          {
              'dept': '7'
          },
          {
              'dept': '8'
          },
          {
              'dept': '9'
          },
          {
              'dept': '11'
          },
          {
              'dept': '12'
          },
          {
              'dept': '13'
          },
          {
              'dept': '14'
          },
          {
              'dept': '15'
          },
          {
              'dept': '16'
          },
          {
              'dept': '17'
          },
          {
              'dept': '18'
          },
          {
              'dept': '19'
          },
          {
              'dept': '20'
          },
          {
              'dept': '21'
          },
          {
              'dept': '22'
          },
          {
              'dept': '23'
          }
      ];


  }]);

我的部分看起来像这样:

<div class="row" ng-show="$parent.loggedin">
    <div class="col-sm-12 calselectrow">
        <span class="glyphicon glyphicon-calendar calicon"></span>
        <input type="text" id="calpick" ng-model="date"  jdatepicker />
        <a href="#" class="btn btn-primary flat-edge">>></a>
        <span class="bluedept">Department:</span>
        <select class="selectpicker deptpicker" selectpicker ng-controller="CaseListCtrl">
            <option ng-repeat="department in departments">{{department.dept}}</option>
        </select>
    </div>
</div>
<div class="row" ng-show="$parent.loggedin">
    <div ng-controller="CaseListCtrl">
        <div class="col-sm-8 col-sm-offset-2 caselist" ng-repeat-start="case in cases track by $index">
            <div class="sequence">
                <input type=text class="seq-box" size="1" value="{{case.sequence}}" />
            </div>
            <div class="casetitle">
                <a href="/case/{{case.number}}" class="caselink">{{case.number}}</a>
                <a href="/case/{{case.number}}" class="btn btn-xs btn-danger calicon-view">
                    <span class="glyphicon glyphicon-calendar"></span>
                </a>
                <a href="/case/{{case.number}}" class="btn btn-xs btn-danger calicon-view">
                    <span class="glyphicon glyphicon-user"></span>
                </a>
                {{case.title}}
            </div>
        </div>
        <div class="col-sm-8 col-sm-offset-2 caselist-bottom">
            <div class="col-sm-9 col-sm-offset-1">
                <div class="hearing-time">{{case.time}}</div>
                <div class="hearing-title">{{case.event}}</div>
            </div> 
        </div>
        <div ng-repeat-end></div>
    </div>
</div>

当我运行这个时,我得到了一堆没有数据的行。如果我取出“追踪$ index”,我会收到有关重复键的错误。如何使这项工作显示我的数据?

2 个答案:

答案 0 :(得分:0)

此代码不会被解释为javascript,因为这是一个安全问题。您将需要使用jsonp或将此数据作为响应正文中的json返回。

试试这个:

$http({method: 'JSONP', url:<your url> + ?callback=JSON_CALLBACK})

并将您的回复更改为:

JSON_CALLBACK ([your array]);

答案 1 :(得分:0)

答案是JSON无效。我应该使用双引号时使用单引号。我也用分号结束文件,必须省略。当我这样做时,效果很好。