2016-07-14 10 views
0

ではありませんので、私はAngularJSとNodeJSに新たなんだ、ここでhttp://l-lin.github.io/angular-datatables/#/angularWayDataChange

App.js

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

を使用して、簡単なNG-テーブルを作成しようとすることは、コントローラであり、

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); 
    } 
} 

は、私が正しい順序でスクリプトを追加しました

  1. jQueryの
  2. AngularJS
  3. AngularJSルート
  4. AngularResource

htmlファイルは次のとおりです。

<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> 

私はTypeError例外のエラーを取得しています:$リソースではありません関数。 わかりませんが、私は行方不明です。

+0

'と' '<スクリプトSRC = "// ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular-resource.min.js">をこの行を置き換えるために、それを変更「 –

+0

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

+0

それでも、同じエラーがスローされます。 –

答えて

0

私は最終的に関数functionAllWayChangeDataCtrlを呼び出す問題を理解しました。私は関数を呼び出している間にパラメータを紛失していました。ただ、

function angularWayChangeDataCtrl($resource, DTOptionsBuilder, DTColumnDefBuilder) 
0

は右angular.js後アンギュラリソースファイルをインクルードし、他のライブラリ

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

それでも、同じエラーがスローされます。 –

+0

プランナーを投稿できますか? – Srijith

+0

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

0

前に、角度、同じバージョンのライブラリ

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-resource.js"></script> 
+0

私は変更を加えました。追加されたリソースは、角度の後、他のすべてのものの前に、同じエラーをスローします。 –

+0

プランカまたはフィドルで作成 –

+0

vm.persons = $ resource( 'data1.json');を試してください。 vm.persons = $ resource( 'data1.json')の代わりに。 –

0

変更$リソースの角リソースを使用する必要がありますあなたのコントローラには$ resourceProviderがあります。

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

角度リソースjsファイルが含まれていても、$ injector:unprエラーがスローされます –

関連する問題