【问题标题】:How do I resolve this syntax error caused by .? [duplicate]如何解决由 . 引起的此语法错误? [复制]
【发布时间】:2017-01-14 05:39:28
【问题描述】:

我得到的错误信息是:

语法错误:标记 '.'是出乎意料的,在表达式 [] 的第 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 文件中执行此操作的,因此开始和结束符号已分别更改为“{[{”和“}]}”。

添加信息:

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

 "$ctrl.open(record.KeyNum)"

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

【问题讨论】:

  • 这里的 $ctrl 是什么?
  • 你可能只是想要$ctrl.open(record.KeyNum)?
  • $ctrl 是 this 并且 this 是函数所在的控制器。我会更新它以便更清楚。本质上,我遵循ui- bootstrap 给出的示例
  • @smarx 我认为这不会起作用,因为记录是一个对象。我将再次更新以提供更多上下文。
  • 标记中的大写“K”和resolve部分中的小写“k”是否重要?

标签: angularjs


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-03-17
    • 1970-01-01
    • 2020-12-26
    • 2020-07-07
    • 2011-12-16
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多