如何解决由此引起的语法错误?

时间:2016-09-06 17:15:34

标签: angularjs

我收到的错误消息是:

  

语法错误:令牌'。'是意料之外的,期望[]在表达式[]的第23行,从[{4}]开始。

导致问题的违规HTML。

    <tr ng-repeat="record in key_table">

         <td ng-repeat="data in record"> 
             {[{ data }]} 
         </td>
         <td>
             <button type="button" class="btn btn-default" ng-click="$ctrl.open({[{ record.KeyNum }]})">Open me!</button>
         </td>
          <td> 
               <button>Edit</button> <button>Delete</button>
         </td>
    </tr>

angularjs中的open函数:

 angular.module('KeyManager').controller("KeyController",  function( httpFactory, $uibModal) {
  $ctrl = this; 
  $ctrl.open = function () {
  var modalInstance = $uibModal.open({
    animation: true,
    ariaLabelledBy: 'modal-title',
    ariaDescribedBy: 'modal-body',
    templateUrl: 'RecordViewer.html',
    controller: 'RecordViewerInstanceCtrl',
    controllerAs: '$ctrl',
    size: "lg",
    resolve: {
      items: function (keyNum) {
          httpFactory.getRecord(keyNum).then(
              function(response) {
                  $ctrl.items = response.data[0];
              },
              function(response) {
                  console.log(response);
                  $ctrl.items = [];
              }
          );
        return $ctrl.items;
      }
    }
  });
});

另外,请注意我在twig文件中执行此操作,因此start和end符号分别更改为“{[{”和“}]}”。

添加信息:

我尝试将ng-click指令切换为

 "$ctrl.open(record.KeyNum)"

但是这只打印出文字字符串record.KeyNum,这是解释here所以@smarx评论是答案。

1 个答案:

答案 0 :(得分:1)

我想你只想要$ctrl.open(record.KeyNum)