2016-11-18 3 views
0

Wenn ich versuche, eine AngularJS ui-Gitter Tabelle mit Daten zu erstellen, die ‚(‘ vor dem Schließen und dann Leerzeichen ‚)‘ ein enthält in einem String, dann erhalte ich eine AngularJS Fehler sagen:

Syntax Error: Token '32' is unexpected, expecting [)] at column 22 of the expression [entity[''](trimpoint 32h)] starting at [32h].

die komplette HTML-Code ist, dass ich die Tabelle zu verwenden, ich versuche zu erstellen:

<html> <head> 
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/3.2.5/ui-grid.css" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js"></script> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/3.2.5/ui-grid.min.js"></script> 
    <script type="text/javascript"> 

var app = angular.module('MyGridApp', ['ui.grid']); 

app.controller('bodyController', ['$scope', function($scope) { 
    $scope.myData = [{'(trimpoint 32h)': "Moroni", age: 50}, 
        {'(trimpoint 32h)': "Tiancum", age: 43}, 
        {'(trimpoint 32h)': "Jacob", age: 27}]; 
    $scope.gridOptions = { data : 'myData' }; }]); 

    </script> </head> <body ng-app="MyGridApp" ng-controller="bodyController"> 
    <div ui-grid="gridOptions"> 
    </div> </body> </html> 

Wenn ich die runden Klammern mit eckigen Klammern ersetzen, dann es funktioniert gut und die Tabelle wird gerendert zB:

$scope.myData = [{'[trimpoint 32h]': "Moroni", age: 50}, 
       {'[trimpoint 32h]': "Tiancum", age: 43}, 
       {'[trimpoint 32h]': "Jacob", age: 27}]; 

Gibt es einen Grund, warum AngularJS einen Fehler zeigt, bei dem Versuch, diese Daten zu analysieren? Es scheint eine gültige JavaScript-Zeichenfolge zu sein, die als Objektname verwendet wird. Dank

+0

Was passiert, wenn Sie einen umgekehrten Schrägstrich mit der Klammer verwenden? '\ (zufälliger Text \)' – trichetriche

+0

können Sie auch versuchen, '$ scope.gridOptions = {data: $ scope.myData};'? – trichetriche

+0

Hallo @trichetriche, danke für deine Antwort. Derselbe "Partsyntax" -Fehler bei beiden Vorschlägen leider. –

Antwort

0

Die Antwort auf das Problem ist, dass Sie einen nicht leeren Raum vor jeder Klammer setzen müssen.

können Sie nehmen diese eine { } oder ein Unicode-Zeichen verwenden, auch Alt + 255 unter Windows versuchen, oder Sie können Ctrl + Shift + U eingeben, halten Ctrl + Shift gedrückt, und geben Sie 00A0 es auf Linux. Auch die Eröffnungszeichenkarte könnte helfen.