2015-02-12 3 views
0

у меня угловой контроллер, как показано ниже:Angular.js: Условный связывание для вложенного объекта

var isAuth = true; 
    $scope.Dashboard = function (isAuth) { 
     $scope.DashboardActions = [{ 
      AreaName: 'Create Request', 
      Functions: [{ 
       FunctionName: 'Request Grid', 
       Actions: { 
        View: isAuth, 
        Sort: isAuth, 
        Filter: isAuth, 
        EditLink: isAuth 
       } 
      }, { 
       FunctionName: 'Create Dummy Request', 
       Actions: { 
        Enable: (isAuth) ? 'inline-block' : 'None' 
       } 
      }] 
     }]; 
    }; 

и HTML, как:

<span style="display:{{Enable | Function {'FunctionName', 'Create Dummy Request'} | DashboardActions }}" class="Action">Actions        
          <a href="#/REQUEST/0" class="btn btn-primary">Create Dummy Request Test</a> 

Я хочу, чтобы позволить отключить span с классом Action по до Enable Недвижимость. Как мне это сделать? К сожалению, только учусь Угловая эти дни ...

Fiddle

+1

Я предлагаю вам переместить большую часть своей логики в 'controller', чем просто использовать' ng-if' в представлении –

ответ

0

используется ng-class условно применить классы объектов DOM. См. docs для получения дополнительной информации.

Кроме того, вам нужно позвонить Dashboard() на init, поскольку он создает объект, который вы хотите использовать. Для этого вы можете использовать ng-init.

Просмотреть обновленный Fiddle.

+0

Я не хочу жестко кодировать индексы 'DashboardActions [0] .Functions [1]. Actions.Enable' –

+0

, вы можете использовать 'angleular.forEach()', чтобы затем перебирать ваши массивы. – DonJuwe

0

Используйте ng-style или ng-class, чтобы применить условный стиль с переменной $ scope. Также вам нужно инициализировать функцию $scope.Dashboard(). Помните, что если вам нужно проверить множество условий, чтобы определить, какой класс активен, используйте функцию для проверки условий. Удалите условия проверки в HTML, поскольку страница HTML становится тяжелой. This jsfiddle - одно из многих возможных решений вашего вопроса.

+0

Что делать, если я не хочу индексировать индексы 'DashboardActions [0] .Functions [1] .Actions.Enable' –

+0

Это зависит от того, как вы хотите проверить условие. Вы хотите выполнить итерацию 'DashboardActions' в HTML? – Saad

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