2017-03-08 50 views
0

我有一个JSON数据是这样的:如何使用的HTML JSON数据应用三元运营商 - angularjs

$scope.user = { 
    is_session_id: true, 
    session_id: 'asdasdadssa', 
    email  : '[email protected]' 
} 

现在,我想分配session_id当“is_session_by”是真实的,emailis_session_by是false \ null。该值将被分配给id一个div

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

我在做一些愚蠢的错误。请帮助

其当通过“检查元素”查出来是这样的:

<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 : [email protected]"> 

    SOMETHING 

</li> 
+1

'is_session_by'是不是'is_session_id' – Mihai

+0

不要使用三种小胡子'同{{}}'。将整个表达式括在一组双括号“{{}}”中。请参阅[AngularJS开发人员指南 - 表达式](https://docs.angularjs.org/guide/expression)。 – georgeawg

回答

2

这是你需要的代码。

<div ng-attr-id="{{ user.is_session_by ? user.session_id : user.email }}" ></div> 
2

你可以使用ng-attr-id,它解析表达式:

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

使用ng-attr-id吨与条件分配ID

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

这是简单的,建议您的问题

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

无需要额外的变量user.isSession_id

-1

为什么你需要这种方式,如果简单的人在那里。

在控制器:

var user = { 
     is_session_by: true, 
     session_id: 'asdasdadssa', 
     email  : '[email protected]' 
    } 

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

在HTML:

<div id="{{result}}" >{{result}}</div> 
+1

我认为,当ng-attr-id本身可以解析表达式 –

+0

时,没有必要在$ scope中添加额外的属性。它不是添加额外的属性。它更多地涉及代码可读性,可维护性和可测试性。 –

+0

@AkashKC无论如何,你通过{{}}评估它,它会花费编译时间和相同的内存。 –