2016-11-18 12 views
0

Когда я пытаюсь создать таблицу ui-grid AngularJS с данными, содержащими '(', а затем пробел перед закрытием ')' внутри строки, затем я получаю AngularJS ошибку говоря:

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

Вот полный HTML код, который я пытаюсь использовать для создания таблицы:

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

Если я заменить круглые скобки в квадратные скобки, то он отлично работает и отображается таблица:

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

Есть ли причина, по которой AngularJS показывает ошибку при попытке проанализировать эти данные? Кажется, что действительная строка JavaScript используется как имя объекта. Спасибо

+0

Что произойдет, если вы используете обратную косую черту со скобкой? '\ (random text \)' – trichetriche

+0

также, вы тоже можете попробовать '$ scope.gridOptions = {data: $ scope.myData};'? – trichetriche

+0

Привет @trichetriche, спасибо за ваш ответ. К сожалению, такая же синтаксическая синтаксическая ошибка при обоих предложениях. –

ответ

0

Ответ на проблему заключается в том, что перед каждой скобкой нужно поставить не пустое пространство.

Вы можете взять этот { } или использовать юникод характер, а также попробовать Alt + 255 на Windows, или вы можете ввести Ctrl + Shift + U, держать Ctrl + Shift нажимается, и введите 00A0 для него на Linux. Кроме того, открытие карты символов может также помочь.