1

是否有在部分页面中使用 ng-grid 的示例。每当我尝试使用时,都会弹出一个错误TypeError: Cannot set property 'myData' of undefined

我的 App.js

'use strict';


// Declare app level module which depends on filters, and services
angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'myApp.controllers', 'ngGrid']).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/view1', {templateUrl: 'partials/partial1.html', controller: 'MyCtrl1'});
    $routeProvider.when('/view2', {templateUrl: 'partials/partial2.html', controller: 'MyCtrl2'});
    $routeProvider.otherwise({redirectTo: '/view1'});
  }]);

控制器.js

'use strict';

/* Controllers */

angular.module('myApp.controllers', ['ngGrid']).
  controller('MyCtrl1', [function ($scope) {

      $scope.myData = [{name: "Moroni", age: 50},
                 {name: "Tiancum", age: 43},
                 {name: "Jacob", age: 27},
                 {name: "Nephi", age: 29},
                 { name: "Enos", age: 34 },];
      $scope.gridOptions = {
          data: 'myData',
          columnDefs: [{ field: 'name', displayName: 'Name' },
              { field: 'age', displayName: 'Age', cellTemplate: '<div ng-class="{green: row.getProperty(col.field) > 30}"><div class="ngCellText">{{row.getProperty(col.field)}}</div></div>' }],
          showGroupPanel: true
      };
  }])
  .controller('MyCtrl2', [function() {

  }]);
//MyCtrl1.$inject = ['$scope'];

Partial1.html

<p>This is the partial for view 1.</p>
<div class="gridStyle" ng-grid="gridOptions"></div>
      <div style="clear:both"/>
<p>{{ myData | json }}</p>

Partial2.html

<p>This is the partial for view 2.</p>
<p>
  Showing of 'interpolate' filter:
  {{ 'Current version is v%VERSION%.' | interpolate }}
</p>

和 index.html

<!doctype html>
<html xmlns:ng="http://angularjs.org" id="ng-app" lang="en" ng-app="myApp">
<head>
  <meta charset="utf-8">
  <title>My AngularJS App</title>
  <link rel="stylesheet" href="css/app.css"/>
  <link rel="stylesheet" href="css/bootstrap.css">
  <link rel="stylesheet" href="css/ng-grid.css">
  <link rel="stylesheet" href="css/Style.css">

  <!-- In production use:
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
  --> 
  <script src="js/jquery-1.9.1.min.js"></script>
  <script src="lib/angular/angular.js"></script>
  <script src="js/ng-grid-2.0.5.min.js"></script>
  <script src="js/app.js"></script>
  <script src="js/services.js"></script>
  <script src="js/filters.js"></script>
  <script src="js/directives.js"></script>
  <script src="js/controllers.js"></script>
</head>
<body>
  <ul class="menu">
    <li><a href="#/view1">view1</a></li>
    <li><a href="#/view2">view2</a></li>
  </ul>

  <div ng-view></div>

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

您能否说一下,为什么'myData'Partial1.html 中不可用?

提前致谢。

4

1 回答 1

0

可能为时已晚,但对于这里的代码 {name: "Enos", age: 34 },]; 你不需要昏迷。它应该是:{name: "Enos", age: 34 }];

于 2013-06-27T16:21:33.370 回答