2016-07-14 14 views
0

Also ich bin neu zu AngularJS und NodeJS, versuche, eine einfache ng-Tabelle http://l-lin.github.io/angular-datatables/#/angularWayDataChange

App.js

var app=angular.module('two_way',['datatables', 'ngResource']); 

Hier verwenden zu schaffen, ist der Controller,

app.controller('two_way_control',function($resource,$scope,$http,$interval){ 
    load_pictures(); 
    load_platform_metadata(); 
    load_platform_values(); 
    load_metadata_map(); 
    angularWayChangeDataCtrl(); 

    function angularWayChangeDataCtrl($resource, DTOptionsBuilder, DTColumnDefBuilder) { 
    var vm = this; 
    vm.persons = $resource('data1.json').query(); 
    vm.dtOptions = DTOptionsBuilder.newOptions().withPaginationType('full_numbers'); 
    vm.dtColumnDefs = [ 
     DTColumnDefBuilder.newColumnDef(0), 
     DTColumnDefBuilder.newColumnDef(1), 
     DTColumnDefBuilder.newColumnDef(2), 
     DTColumnDefBuilder.newColumnDef(3).notSortable() 
    ]; 
    vm.person2Add = _buildPerson2Add(1); 
    vm.addPerson = addPerson; 
    vm.modifyPerson = modifyPerson; 
    vm.removePerson = removePerson; 

    function _buildPerson2Add(id) { 
     return { 
      id: id, 
      firstName: 'Foo' + id, 
      lastName: 'Bar' + id 
     }; 
    } 
    function addPerson() { 
     vm.persons.push(angular.copy(vm.person2Add)); 
     vm.person2Add = _buildPerson2Add(vm.person2Add.id + 1); 
    } 
    function modifyPerson(index) { 
     vm.persons.splice(index, 1, angular.copy(vm.person2Add)); 
     vm.person2Add = _buildPerson2Add(vm.person2Add.id + 1); 
    } 
    function removePerson(index) { 
     vm.persons.splice(index, 1); 
    } 
} 

ich habe die Skripte in der richtigen Reihenfolge

hinzugefügt
  1. JQuery
  2. AngularJS
  3. AngularJS Strecke
  4. AngularResource

Die HTML-Datei wird wie folgt:

<body ng-app="two_way" ng-controller="two_way_control"> 



<html ng-app="two_way" ng-controller="two_way_control"> 
<head> 
    <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
     <meta name="description" content=""> 
     <meta name="author" content=""> 
      <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
      <meta name="viewport" content="width=device-width,initial-scale=1"> 
      <title>Metadata Manager</title> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.js"></script> 
        <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> 
        <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-datatables/0.5.4/angular-datatables.min.js"></script> 
      <link rel="shortcut icon" type="image/png" href="/angular/favicon.png"> 
      <link rel="stylesheet" href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css"> 
      <link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.1.0/css/responsive.dataTables.min.css"> 
      <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.datatables.net/rss.xml"> 
      <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css"> 
      <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.1.0/css/responsive.dataTables.min.css"> 
      <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
      <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
      <script src="https://cdn.datatables.net/responsive/2.1.0/js/dataTables.responsive.min.js"></script> 
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-datatables/0.5.4/css/angular-datatables.min.css"> 
     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular-resource.min.js"></script> 
      <script type="text/javascript" class="init"></script> 
      <script src="angular.js"></script> 
     <script src="app.js"></script> 
     <script src="core.js"></script> 

</head> 
<body ng-app="two_way" ng-controller="two_way_control"> 



    <form class="form-inline" ng-submit="showCase.addPerson()"> 
     <table datatable="ng" dt-options="showCase.dtOptions" dt-column-defs="showCase.dtColumnDefs" class="row-border hover"> 
      <thead> 
      <tr> 
       <th> 
        <div class="form-group"> 
         <label> 
          <input class="form-control" type="number" name="id" ng-model="showCase.person2Add.id" value=""> 
         </label> 
        </div> 
       </th> 
       <th> 
        <div class="form-group"> 
         <label> 
          <input type="text" class="form-control" name="firstName" ng-model="showCase.person2Add.firstName" value=""> 
         </label> 
        </div> 
       </th> 
       <th> 
        <div class="form-group"> 
         <label> 
          <input type="text" class="form-control" name="lastName" ng-model="showCase.person2Add.lastName" value=""> 
         </label> 
        </div> 
       </th> 
       <th> 
        <div class="form-group"> 
         <button type="submit" class="btn btn-success"><i class="fa fa-plus"></i></button> 
        </div> 
       </th> 
      </tr> 
      <tr> 
       <th>ID</th> 
       <th>FirstName</th> 
       <th>LastName</th> 
       <th></th> 
      </tr> 
      </thead> 
      <tbody> 
      <tr ng-repeat="person in showCase.persons"> 
       <td>{{ person.id }}</td> 
       <td>{{ person.firstName }}</td> 
       <td>{{ person.lastName }}</td> 
       <td> 
        <button type="button" ng-click="showCase.modifyPerson($index)" class="btn btn-warning"><i class="fa fa-edit"></i></button> 
        <button type="button" ng-click="showCase.removePerson($index)" class="btn btn-danger"><i class="fa fa-trash-o"></i></button> 
       </td> 
      </tr> 
      </tbody> 
     </table> 
    </form> 


</body> 
</html> 

ich einen Fehler von Typeerror bekommen: ist $ resource kein Funktion. Nicht sicher, was ich vermisse.

+0

Ersetzen Sie diese Zeile '' mit ' ' –

+0

https://cdnjs.cloudflare.com/ajax/libs /angular.js/1.4.8/angular-resource.js –

+0

Hat das immer noch den gleichen Fehler ausgelöst. –

Antwort

0

Habe ich es schließlich aus, um das Problem mit der Funktion Funktion angularWayChangeDataCtrl aufrufen. Mir fehlten die Params beim Aufruf der Funktion. Nur änderte es zu

function angularWayChangeDataCtrl($resource, DTOptionsBuilder, DTColumnDefBuilder) 
0

Fügen Sie die Winkel-Ressource-Datei direkt nach dem Angularjs und vor anderen Bibliotheken

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular-resource.min.js"></script> 
+0

Hat das, immer noch den gleichen Fehler ausgelöst. –

+0

Kannst du einen Plünderer postieren? – Srijith

+0

Verwenden Sie https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-resource.js –

0

Sie haben

Winkel-Ressource von derselben Version von Winkeln Bibliothek verwenden
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-resource.js"></script> 
+0

Ich habe die Änderung vorgenommen, und auch Ressource nach eckigen und vor allen anderen hinzugefügt, wirft immer noch den gleichen Fehler. –

+0

In Plunker oder Geige erstellen –

+0

Versuchen Sie vm.persons = $ resource ('data1.json'); anstelle von vm.persons = $ resource ('data1.json'). query(); –

0

Änderung $ resource mit $ resourceProvider in Ihrem Controller.

app.controller('two_way_control',function($resourceProvider,$scope,$http,$interval){ 
+0

Wirft einen $ Injektor: Unpr Fehler, obwohl ich Angular Resource Js-Datei enthalten –

Verwandte Themen