Вопрос:

Как применить троичный оператор, используя данные JSON на html - angularjs

angularjs

1136 просмотра

5 ответа

308 Репутация автора

У меня есть данные JSON, что-то вроде:

$scope.user = {
     is_session_id: true,
     session_id: 'asdasdadssa',
     email     : 'abc@gmail.com'
}

Теперь я хочу назначить, session_idкогда 'is_session_by' равно true, а emailкогда is_session_byfalse = null. Значение должно быть присвоено iddiv

<div id="{{ user.is_session_id}}  ?  {{  user.session_id }} : {{ user.email  }} " ></div>

Я делаю глупую ошибку. пожалуйста помоги

Получается так, когда проверяется через "Inspect element":

<li ng-click="selectUser(user,$index)" 
  class="left clearfix ng-scope selected" 
  ng-class="{selected: selected_user.email === user.email}" 
  ng-repeat="user in user_list" 
  id="true  ?  asdasdadssa : abc@gmail.com">

  SOMETHING

 </li>
Автор: Samuel Источник Размещён: 08.03.2017 06:54

Ответы (5)


2 плюса

13770 Репутация автора

Вы можете использовать то, ng-attr-idчто анализирует ваше выражение:

<div ng-attr-id="{{ user.is_session_id  ?   user.session_id  :  user.email  }} " ></div>
Автор: Akash KC Размещён: 08.03.2017 06:58

2 плюса

796 Репутация автора

Решение

Это код, который вам нужен.

<div ng-attr-id="{{ user.is_session_by ? user.session_id : user.email  }}" ></div>
Автор: Carlos Arauz Размещён: 08.03.2017 06:58

2 плюса

22106 Репутация автора

использовать ng-attr-idт присвоить идентификатор с условием

<div  ng-attr-id="{{ user.is_session_id  ?   user.session_id :  user.email  }} " ></div>
Автор: Sachila Ranawaka Размещён: 08.03.2017 06:58

1 плюс

1227 Репутация автора

Это просто и рекомендуется для вашей проблемы

<div ng-attr-id="{{ user.session_id || user.email  }} " ></div>

Нет необходимости в дополнительной переменной user.isSession_id

Автор: Gaurav Размещён: 08.03.2017 07:04

-1 плюса

11865 Репутация автора

Зачем вам нужен этот путь, если есть простой?

В контроллере:

 var user = {
         is_session_by: true,
         session_id: 'asdasdadssa',
         email     : 'abc@gmail.com'
    }

$scope.result = user.is_session_by  ?   user.session_id  :  user.email 

В HTML:

<div id="{{result}}" >{{result}}</div>
Автор: RIYAJ KHAN Размещён: 08.03.2017 07:07
Вопросы из категории :
32x32