【问题标题】:Trying to assign a value to a non l-value - AngularJs尝试将值分配给非左值 - AngularJs
【发布时间】:2018-06-06 09:10:50
【问题描述】:

我有一个条件,在我的 Angular 应用程序中,如果返回 false 则禁用单击事件的视图,如下所示:

<li data-ng-click="!$ctrl.question.q1 || activeTab = 1" data-ng-disabled="!$ctrl.question.q1">Q.1</li>
<li data-ng-click="!$ctrl.question.q2 || activeTab = 2" data-ng-disabled="!$ctrl.question.q2">Q.2</li>

如果 question.q2 返回 false,请不要更改 activeTab 的值并保持禁用状态。该功能有效,但控制台中显示错误:

Trying to assign a value to a non l-value

我找到了这个thread,它解释了我如何分配一个值而不是比较它,但我需要分配它来更改单独面板中显示的内容。选项卡功能在添加条件之前运行良好。

问题

我该如何解决这个错误?

<uib-tabset active="activeTab">
    <uib-tab heading="" index="1" data-ng-hide="true">
       //content
    </uib-tab> 
    <uib-tab heading="" index="2" data-ng-hide="true">
       //content
    </uib-tab> 
</uib-tabset>

【问题讨论】:

  • 也发布你的脚本代码
  • !$ctrl.question.q1 || activeTab = 1 是无效的左侧分配。在那里使用|| 是什么意思?

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

data-ng-click 内部的逻辑读作“NOT $ctrl.question.q2 OR assign activeTab value 2”

我认为你想要的是一个简写的 if 语句,使用三元运算符:

data-ng-click="activeTab = $ctrl.question.q2 ? 2 : activeTab"

读作:“如果 $ct​​rl.question.q2 为真,则将值 2 分配给 activeTab,如果 $ct​​rl.question.q2 为假,则将其分配为旧值”

【讨论】:

  • 谢谢!现在都在工作。我正在关注另一个让我有点困惑的指南。
猜你喜欢
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
相关资源
最近更新 更多