【问题标题】:ng-clss Token '.' is unexpected, expecting [:]ng-cls 令牌 '.'出乎意料,期待 [:]
【发布时间】:2017-02-02 07:52:05
【问题描述】:

我正在尝试在 ng-repeat 中使用 ng-class,

<div data-ng-repeat='item in rows'>    
  <div class="repeat" data-ng-class="{ item.parent? 'parent': 'child'}">
  ...
  </div>
</div

但我不知道为什么会出现以下错误:

语法错误:标记 '.'出乎意料,在表达式 [{ item.parent? '父母':'孩子'}]

从 [.parent? '父母':'孩子'}]。

【问题讨论】:

  • 尝试使用两个括号,例如 data-ng-class="{{item.parent? 'parent': 'child'}}"
  • 双括号不适用于 ngclass

标签: css angularjs


【解决方案1】:

https://plnkr.co/edit/W8ptotfKDXUUFomvmsYH?p=preview

删除 { }

<div data-ng-repeat='item in rows'>    
  <div class="repeat" data-ng-class=" item.parent ? 'parent': 'child'">
    {{item.parent}}
  </div>
</div

或带括号但没有三进制

<div data-ng-repeat='item in rows'>    
  <div class="repeat" data-ng-class="{'parent':item.parent ,'child':!item.parent}">
    {{item.parent}}
  </div>
</div

【讨论】:

  • 就我而言, item.parent 实际上不是 boolean 值。它会起作用吗?
  • 它是什么?你可以用data-ng-class="( item.parent == 'test') ? 'parent': 'child'"
【解决方案2】:

这是使用 ng-class 的方式

<div class="repeat" ng-class="{
    'parent' : item.parent,
    'child' : !item.parent
}" </div>

【讨论】:

  • 就我而言, item.parent 实际上不是 boolean 值。它会起作用吗?
  • 是的,确定将item.parent 的条件设置为item.parent === 'somevalue'item.parent !== 'somevalue'
  • 你知道你应该接受最佳答案以使社区有效,如果有人搜索相同的问题,他们会首先看到最佳答案。请接受以下答案之一——
猜你喜欢
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2014-09-11
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多