2013-12-11 3 views
0

Я новичок в angularjs. Я создал список, используя ng-repeat. просто я хочу, чтобы скрыть выбранный элемент списка из списка:Я хочу скрыть только определенный элемент списка

HTML код, который я предпочитаемый:

<ul> 
<li ng-repeat="profile in profileMenu"> 
    <div class="hederMenu" ng-hide="configureDisplay" ng-click="setProfile(profile.name)"> 
    <a class="anchor" style="width:100%" >{{profile.name}}</a> 
    </div> 
</li> 
</ul> 

здесь код контроллера

$scope.profileMenu = [{ 
     name : "My Profile" 
    }, { 
     name : "Configure" 
    }, { 
     name : "Logout" 
    } 
]; 

$scope.profile = ""; 
$scope.setProfile = function (test) { 
    $scope.profileSelected = test; 
    if ($scope.profileSelected == "Configure") { 
     $location.path("/home/configure"); // if user click configure then this element will hide 
     $scope.configureDisplay = true; 
    } 
    if ($scope.profileSelected == "My Profile") { 
     $location.path("/home/dashboard"); 
     $scope.configureDisplay = false; 
    } 
    if ($scope.profileSelected == "Logout") { 
     window.location.assign("http://mitesh.demoilab.pune/") 
    } 
    return $scope.profileSelected = test; 
} 
+0

В чем проблема, с которой вы сталкиваетесь? –

+0

нажав на элементе списка, все элементы списка теперь скрыты –

+0

просто я хочу скрыть конкретный элемент списка скрыть –

ответ

2

Вы должны установить свойство configureDisplay в фактическом элементе профиля «Настроить». Не уверен, что вы делаете с списком выбора, но я предполагаю, что вы хотите, чтобы элемент «Configure» отображался снова при выборе другого элемента. Поэтому при выборе другого элемента вам также придется сбросить элемент «Настроить» на значение «false».

Я немного изменил ваш пример. Обратите внимание, вместо передачи profile.name в файле setProfile я передаю объект профиля. Это просто упрощает взаимодействие.

+1

YEs you right Я просто хочу сбросить настройки. вот ответ, который я хочу ... спасибо .. @ reinard –

0

вам нужно сделать несколько изменений,

<li ng-repeat="profile in profileMenu"> 
    <div class="hederMenu" ng-hide="profile.configureDisplay" ng-click="setProfile(profile)"> 
    <a class="anchor" style="width:100%" >{{profile.name}}</a> 
    </div> 
</li> 

И в контролерах,

$scope.setProfile = function (test) { 
    $scope.profileSelected = test.name; 
    if ($scope.profileSelected == "Configure") { 
     $location.path("/home/configure"); 
     test.configureDisplay = true; 

    } 
    if ($scope.profileSelected == "My Profile") { 
     $location.path("/home/dashboard"); 
     test.configureDisplay = false; 

    } 
    if ($scope.profileSelected == "Logout") { 
     window.location.assign("http://mitesh.demoilab.pune/") 
    } 
    return test; 
} 
+0

нет jayantha это не то, что мне нужно. –

Смежные вопросы