如何在条件ng-click上触发多个操作?

时间:2014-03-04 19:58:32

标签: angularjs

对于以下代码片段,我如何触发isEditable =!isEditable和edit(object);在跨度点击。如果我只在条件ng-click中传递单个动作,它可以正常工作,但是如何通过2个或更多动作来触发?

有问题的属性如下:ng-click =“session.falg == true || isEditable =!isEditable; edit(object);”

我希望这里的isEditable值是toggeled,而edit(object)方法是被调用的。

请注意,session.flag在rootScope级别可用,编辑(对象)在控制器级别可用,负责此视图。

<ul class="list">
  <li ng-repeat="object in objectsArray">
    <div ng-show="!isEditable">
        <span ng-click="session.falg == true||isEditable = !isEditable;edit(object);">&nbsp;({{object.text}})</span>
    </div>
    <div ng-show="isEditable">
       <input type="text" ng-model="object.text" ng-blur="isEditable = !isEditable;updateObject(object);" />
    </div>
  </li>
</ul>

由于


使用单个函数来解决这个问题的原因是2个div是列表的一部分(对于列表中可用的每个对象,将显示2个像上面提到的div一样的div)。所以我不确定如何使用这种方法切换isEditable值(每个列表元素都是唯一的)。

一个选项是为这个值定义一个数组,但我相信它会变得很麻烦。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

我强烈建议避免将多个操作写入HTML。

按照以下方法输掉:

  • 可维护性
  • 你无法调试
  • 代码重用
  • 代码组织

就像@Gruff Bunny所说,在ng-click调用的控制器中创建一个方法。

让您的代码变得简单。

相关问题