Javascript 在AngularJS中切换编辑状态并更改项目';单击以转到另一个函数

Javascript 在AngularJS中切换编辑状态并更改项目';单击以转到另一个函数,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个编辑按钮和一个包含项目的列表。当我单击“编辑”时,我想进入“编辑模式”,当处于编辑模式时,我想能够单击列表中的项目并在单击时将其删除。当不处于编辑模式时,这些项调用另一个函数,因此我不确定如何实现这一点 以下是我的标记: <span class="side-text"><a ng-click="toggleEditState()">Edit</a></span> <ul id="fav-tags-list" class="list"&

我有一个编辑按钮和一个包含项目的列表。当我单击“编辑”时,我想进入“编辑模式”,当处于编辑模式时,我想能够单击列表中的项目并在单击时将其删除。当不处于编辑模式时,这些项调用另一个函数,因此我不确定如何实现这一点

以下是我的标记:

<span class="side-text"><a ng-click="toggleEditState()">Edit</a></span>
<ul id="fav-tags-list" class="list">
    <li ng-repeat="tag in tagsList" ng-bind="tag" 
        ng-click="shared.getImages(tag)"></li> //If editState = true then change to removeTag(tag)
</ul>

我如何在这里实现我想要的?如果有更聪明的解决办法,我会接受的

一个可能的解决方案是有两个列表。一个不在编辑模式下显示,另一个在编辑模式下显示

<span class="side-text"><a ng-click="toggleEditState()">Edit</a></span>
<ul id="fav-tags-list" class="list" ng-show="!editState">
    <li ng-repeat="tag in tagsList" ng-bind="tag" 
        ng-click="shared.getImages(tag)"></li>
</ul>
<ul id="fav-tags-list" class="list" ng-show="editState">
    <li ng-repeat="tag in tagsList" ng-bind="tag" 
        ng-click="shared.removeTag(tag)"></li>
</ul>
编辑

一种可能的解决方案是有两个列表。一个不在编辑模式下显示,另一个在编辑模式下显示

<span class="side-text"><a ng-click="toggleEditState()">Edit</a></span>
<ul id="fav-tags-list" class="list" ng-show="!editState">
    <li ng-repeat="tag in tagsList" ng-bind="tag" 
        ng-click="shared.getImages(tag)"></li>
</ul>
<ul id="fav-tags-list" class="list" ng-show="editState">
    <li ng-repeat="tag in tagsList" ng-bind="tag" 
        ng-click="shared.removeTag(tag)"></li>
</ul>
编辑

我认为有一个非常简短而优雅的解决方案:

<div ng-click="select? a() : b()">some element</div>
某个元素
如果
select
为true,则调用
a()
,否则调用
b()


plnkr在几个div上显示了我的解决方案,为您的用例实现它应该不难。

我认为有一个非常简短而优雅的解决方案:

<div ng-click="select? a() : b()">some element</div>
某个元素
如果
select
为true,则调用
a()
,否则调用
b()


是一个在几个div上显示我的解决方案的plnkr,为您的用例实现它应该不难。

您可以创建一个调用
shared.removeTag(tag)
someOtherFunction(tag)
的函数,具体取决于
$scope.editState
变量

例如:

$scope.myFunction = function(tag) {
    if ($scope.editState) {
        shared.removeTag(tag)
    } else {
        shared.getImages(tag)
    }
}
HTML:


  • 根据
    $scope.editState
    变量,您可以创建一个调用
    shared.removeTag(tag)
    someOtherFunction(tag)
    的函数

    例如:

    $scope.myFunction = function(tag) {
        if ($scope.editState) {
            shared.removeTag(tag)
        } else {
            shared.getImages(tag)
        }
    }
    
    HTML:


  • 对我来说确实如此,这里有一个悬念,我想我的if语句搞砸了。工作起来很有魅力!谢谢:)这对我来说确实是,这里有一个悬念,我想我在我的if声明中弄糟了。像一个符咒一样工作!谢谢:)