代码之家  ›  专栏  ›  技术社区  ›  Patrick McDermott

试图将值赋给非l值-angularjs

  •  1
  • Patrick McDermott  · 技术社区  · 7 年前

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

    <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>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Protozoid    7 年前

    内在的逻辑 data-ng-click 正在读取为“not$ctrl.question.q2 or assign activetab value 2”

    我想你需要的是一个速记if语句,使用三元运算符:

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

    其内容如下:“如果$ctrl.question.q2为真,则将值2赋给activetab;如果$ctrl.question.q2为假,则将值2赋给activetab”