javascript - 尝试将值分配给非左值 - AngularJs

标签 javascript angularjs twitter-bootstrap

我有一个条件,在我的 Angular 应用程序的 View 中,如果返回 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>

最佳答案

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 为假,则为其分配旧值”

关于javascript - 尝试将值分配给非左值 - AngularJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716480/

相关文章:

javascript - 使用 jQuery 重新排序元素列表,因为我的 CSS 方法不是 100%

javascript - 这个用于创建范围的递归函数如何工作?

angularjs - JSON 字符串化 $rootScope

AngularJS : multiple resolves in ui. 路由器

javascript - 错误 : 'console is not defined. [no-undef] - 括号

javascript - 迁移到 React 16.0.0 错误 : Cannot find module "react/lib/ReactComponentTreeHook"

javascript - 在 AngularJS 中按时间间隔显示数据

html - 在 Bootstrap Segmented 输入组右侧添加圆 Angular

twitter-bootstrap - 如何使用 Twitter Bootstrap ScrollSpy 执行功能

jquery - 使水井漂浮在 body 上而不是将元素插入 body