2017-04-25 1 views
0

J'ai un module "testControllerModule" et le contrôleur défini "myCtrl" à l'intérieur. Ce code affiche les données de table avec pagination. Le contrôleur ne fonctionne pas/se déclenche lors du chargement de la page.Angular JS ng-controller ne fonctionne pas au chargement de la page

<div class="row"> 
    <div class="col-md-6" ng-controller="myCtrl"> 
     <h3>Open Incidents</h3> 
     <table ng-table="tableParams" class="table table-condensed table-bordered table-striped"> 
     <tr ng-repeat="row in $data"> 
      <td data-title="'Name'" sortable="'name'">{{row.name}}</td> 
      <td data-title="'Age'" sortable="'age'">{{row.age}}</td> 
      <td data-title="'Money'">{{row.money}}</td> 
     </tr> 
     </table> 
    </div> 

    </div> 

Module avec contrôleur:

(function() 
{ 
    "use strict"; 
    var app=angular.module("testControllerModule", ["ngTable"]); 
    app.controller("myCtrl", myCtrl); 
    function myCtrl(NgTableParams) 
    { 
     console.info('myCtrl init'); 
     var dataset = [{ name: 'christian', age: 21 , money:100}, { name: 'anthony', age: 88, money:200 }]; 
     this.tableParams = new NgTableParams({ 
      // initial sort order 
      sorting: { name: "asc" } 
     }, { 
      dataset: dataset 
     }); 
    } 
    myCtrl.$inject = ["NgTableParams"]; 


    angular.module("testControllerModule").run(configureDefaults); 


    function configureDefaults(ngTableDefaults) { 
     ngTableDefaults.params.count = 5; 
     ngTableDefaults.settings.counts = []; 
    } 
    configureDefaults.$inject = ["ngTableDefaults"]; 
})(); 
+0

Vous avez déclaré un 'MyCtrl' mais dans une utilisation vue' 'myCtrl. Donc, essayez 'ng-controller =" MyCtrl "' – Leguest

+0

désolé, mis à jour le code. –

Répondre

0

Pouvez-vous essayer de mettre '-' devant le contrôleur, comme

<div class="col-md-6" -ng-controller="myCtrl"> 

Mise à jour Réponse:

Pouvez-vous modifier votre code comme ci-dessous. Portée de $ injection au contrôleur

(function() 
{ 
    "use strict"; 
    var app=angular.module("testControllerModule", ["ngTable"]); 
    function myCtrl($scope,NgTableParams) 
    { 

     var dataset = [{ 
       "name": "Test1", 
       "age": 50, 
       "money": 1000 
       }, { 
       "name": "Test2", 
       "age": 51, 
       "money": 1000 
       }, { 
       "name": "Test3", 
       "age": 52, 
       "money": 1000 
       }, { 
       "name": "Test4", 
       "age": 53, 
       "money": 1000 
       }, { 
       "name": "Test5", 
       "age": 54, 
       "money": 1000 
       }, { 
       "name": "Test6", 
       "age": 55, 
       "money": 1000 
       }, { 
       "name": "Test2", 
       "age": 51, 
       "money": 1000 
       }, { 
       "name": "Test3", 
       "age": 52, 
       "money": 1000 
       }, { 
       "name": "Test4", 
       "age": 53, 
       "money": 1000 
       }, { 
       "name": "Test5", 
       "age": 54, 
       "money": 1000 
       }, { 
       "name": "Test6", 
       "age": 55, 
       "money": 1000 
       }, { 
       "name": "Test2", 
       "age": 51, 
       "money": 1000 
       }, { 
       "name": "Test3", 
       "age": 52, 
       "money": 1000 
       }, { 
       "name": "Test4", 
       "age": 53, 
       "money": 1000 
       }, { 
       "name": "Test5", 
       "age": 54, 
       "money": 1000 
       }, { 
       "name": "Test6", 
       "age": 55, 
       "money": 1000 
       }, { 
       "name": "Test2", 
       "age": 51, 
       "money": 1000 
       }, { 
       "name": "Test3", 
       "age": 52, 
       "money": 1000 
       }, { 
       "name": "Test4", 
       "age": 53, 
       "money": 1000 
       }, { 
       "name": "Test5", 
       "age": 54, 
       "money": 1000 
       }, { 
       "name": "Test6", 
       "age": 55, 
       "money": 1000 
       }]; 

     $scope.tableParams = new NgTableParams({},{dataset: dataset}); 
     console.info('myCtrl end'); 
    } 
    myCtrl.$inject = ["$scope","NgTableParams"]; 
    app.controller("myCtrl", myCtrl); 


    angular.module("testControllerModule").run(configureDefaults); 
    function configureDefaults(ngTableDefaults) { 
     ngTableDefaults.params.count = 5; 
     ngTableDefaults.settings.counts = []; 
    } 
    configureDefaults.$inject = ["ngTableDefaults"]; 
})(); 
+0

Laissez-nous un coup –

+0

Une bonne nouvelle et une mauvaise nouvelle. Bonne nouvelle: le «déclenchement du contrôleur» et les mauvaises données de la table des nouvelles ne se remplissent pas. Mais pourquoi '-ng-controller' –

+0

Mis à jour ma réponse. Pouvez-vous essayer cela? – John

1

Pouvez-vous essayer <tr ng-repeat="row in dataset"> au lieu de

<tr ng-repeat="row in $data"> 
+0

Désolé, cela n'a pas fonctionné –