2017-12-29 6 views
0

Ich experimentiere mit Handsontable hinzufügen und entfernen Spalte Funktion. Aber es funktioniert nicht.Hinzufügen oder Entfernen Spalte funktioniert nicht in Handsontable

Hier ist mein Code: -

Mein index.html

<!DOCTYPE html> 
<html ng-app="app"> 
    <head> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js"></script> 

     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.35.0/handsontable.full.js"></script> 
     <!--<link rel="stylesheet" type="text/css" href="css/style.css">--> 
     <script type="text/javascript" src="js/app.js"></script> 
     <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.35.0/handsontable.full.css"> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ngHandsontable/0.13.0/ngHandsontable.js"></script> 
     <!--<script type="text/javascript" src="data/datafactory.js"></script>--> 
    </head> 


    <body MainCtrl as ctrl> 

<hot-table col-headers="true" datarows="ctrl.data"> 
    <hot-column ng-repeat="column in ctrl.columns" data="{{column.data}}" title="column.title" read-only="column.readOnly"></hot-column> 
</hot-table> 

<button ng-click="ctrl.addColumn()">Add column</button> 
<button ng-click="ctrl.removeColumn()">Remove column</button> 

    </body> 

</html> 

Mein app.js

function MainCtrl() { 
    var items = [[]]; 

    this.data = items; 
    this.columns = [ 
     { 
     data: 'id', 
     title: 'ID', 
     readOnly: true 
     }, 
     { 
     data: 'price', 
     title: 'Price', 
     readOnly: false 
     } 
    ]; 

    this.addColumn = function() { 
     this.columns.push({}); 
    }; 
    this.removeColumn = function() { 
     this.columns.pop(); 
    }; 
    } 

    angular 
    .module('app', ['ngHandsontable']) 
    .controller('MainCtrl', MainCtrl); 

MainCtrl.$inject = []; 

Wenn ich den Code ausführen es nicht funktioniert und nicht erlauben, Spalte hinzuzufügen oder zu entfernen. Ich bin neu sowohl im eckigen als auch im Frontend-Design. Also suche hier Hilfe.

Antwort

1

Ich glaube, Sie müssen Ihre <script> Tags richtig bestellen - Ihr Code am Ende gehen sollte (ich denke, Ihr Code in js/app.js):

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js"></script> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.35.0/handsontable.full.js"></script> 
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/handsontable/0.35.0/handsontable.full.css"> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ngHandsontable/0.13.0/ngHandsontable.js"></script> 
    <script type="text/javascript" src="js/app.js"></script> 

finden Sie Pfeil Funktionen, wo man statt Funktion() ... Oder ein:

let ctrl = this; 

Sie können in Schwierigkeiten geraten mit this so, wie Sie es tun. Umfang von this kann und wird sich ändern.

Hier Beispiel des Codes in JS Geige arbeiten: https://jsfiddle.net/pegla/b6rj93cg/2/

+0

Dank .. Sein jetzt arbeiten :) –

Verwandte Themen