对于以下代码片段,我如何触发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);"> ({{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值(每个列表元素都是唯一的)。
一个选项是为这个值定义一个数组,但我相信它会变得很麻烦。
有什么想法吗?
谢谢
答案 0 :(得分:2)
我强烈建议避免将多个操作写入HTML。
按照以下方法输掉:
就像@Gruff Bunny所说,在ng-click
调用的控制器中创建一个方法。
让您的代码变得简单。