2014-01-13 61 views
1

我试图创建具有两种状态addadded这两个州都在我的解决方案可见点击功能,但我只想要一个状态到一次显示。到目前为止,我的逻辑是以下面的方式来构造它。演示时,我在班级被激活的项目点击如何,我无法删除类我注意到。 DemoNG-点击添加和删除类

<div ng-repeat= "fav in fav"> 
    <div ng-click="select(fav)" ng-class="favClass(fav)" class="panel-controls panel-controls__item"> 
    {{fav}} 
</div> 

    var app = angular.module("myApp", []); 
    app.controller("favouriteBtn", function ($scope){ 

    $scope.fav = ['add', 'added']; 
    $scope.selected = $scope.fav[0]; 

    $scope.select = function(fav) { 
     $scope.selected = fav; 
     }; 

    $scope.favClass = function(fav){ 
     return fav === $scope.selected ? 'active' : underfined; 
    }; 
    }); 

回答

0

只是一个猜测:

ng-class="{active: fav == selected}" 

,或者如果你只是想改变显示按钮:

ng-show="fav == selected" 

ng-show="fav != selected" 
+0

它工作在一定程度上,但它不同时显示一个状态。例如在我的演示中,我有两个框,我试图只显示一个框。 – NewKidOnTheBlock

+0

那么你应该尝试NG-秀=“最爱==选择”或NG秀=“最爱!=选择” – michael

+0

你不介意的答案写这个吗? – NewKidOnTheBlock

0

我会做的迈克尔说。

在视图:

<div class="{{selected}}"> 
    <div ng-show="selected == 'add'"> 
    <button ng-click="toggleButton()">Button1</button> 
    </div> 
    <div ng-show="selected == 'added'"> 
    <button class='disabled'>Button2</button> 
    </div> 
</div> 

在控制器:

angular.module('myApp').controller('ButtonCtrl', 
[ 
    '$scope', 
    function($scope){ 
    $scope.fav = ['add', 'added']; 
    $scope.selected = fav[0]; 

    $scope.toggleButton = function(){ 
     $scope.selected = fav[1]; 
    }; 
    } 
]);