突出显示从一个模型跳到另一个模型的 ng-model

highlighted ng-model jumping from one model to another

我有 5 个按钮。当我快速点击不同的按钮时,有时即使我不点击它,之前高亮的按钮也会再次高亮。

在我的控制器中

$scope.selectSidebarMenu = function(menu) {
    $scope.selected = menu;
};

$scope.isSelected = function($event, menu) {
    return $scope.selected === menu;
};

// Initialize variables
$scope.activateTransparent = false;

$scope.sidebarMenus = [
  { menuName : 'Button 1', width : 'medium-6', icon : 'fi-page-add'},
  { menuName : 'Button 2', width : 'medium-6', icon : 'fi-page-edit'},
  { menuName : 'Button 3', width : 'medium-6', icon : 'fi-page'},
  { menuName : 'Button 4', width : 'medium-6', icon : 'fi-page'},
  { menuName : 'Button 5', width : 'medium-12', icon : 'fi-page'}
];

在我的模板中

<div class="row page">
    <div class="small-12 large-4 columns sidebar">
        <div class="row">
            <a ng-repeat="menu in sidebarMenus" class="{{menu.width}} columns menu-item button" ng-click="selectSidebarMenu(menu)">
                <div class="text-center">
                    <i class="show-for-large-up {{menu.icon}} size-36"></i>
                    <p class="size-12">{{menu.menuName}}</p>
                </div>
                <div class="disableBottomBorder" ng-class="{ enableBottomBorder : isSelected(menu) }"></div>
            </a>
        </div>
    </div>

    <div class="small-12 large-8 columns content">
        <h3>Content</h3>
        <p>Content goes in here</p>
    </div>
</div>

在我的 css

.disableBottomBorder {
    border-bottom: solid 4px $primary-color;
    width: 100%;
    display: inline-block;
    position: relative;
    bottom: -21px;
    opacity : 0;
}

.enableBottomBorder {
    border-bottom: solid 4px $primary-color;
    width: 100%;
    display: inline-block;
    position: relative;
    bottom: -21px;
    opacity : 1;
}

我实际上想做的是在我单击的按钮上放置一个底部边框,以显示它当前处于选中状态。我实际上遵循了这个 jsfiddle 上写的实现 - http://jsfiddle.net/pkozlowski_opensource/WXJ3p/15/

我添加了 disableBottomBorder,因为如果我不这样做,按钮在被选中时会变得混乱。没有这个 class.

他们将无法保持地位

$scope.selected === 菜单;

不要对对象进行绝对比较。相反,比较对象的属性,最好是像 'menuName.'

这样的独特属性