2016-09-07 12 views
0

私はAngularJSアプリケーション内でいくつかの小さな問題を修正しています - 私は以下のロジックを見てきましたリンク。それはクリーンであると私は、単一の行のいくつかのフォームを使用して線を複製しておりませんので、以下のようにテンプレート内の擬似コードのスタイルでテンプレート/ビューでこのロジックをリファクタリングしてif文(AngularJS 1.x)を使用する方法

..

if (data.serviceId exists in the DOM) { 
    display link & populate the href from data.serviceId value 
} elseif(commentReply.sender.serviceId exists in the DOM) { 
    display the link & populate the href from commentReply.sender.serviceId value 
} 

コード自体が見え、どのように私は以下のコードを修正することができます三次声明? (あなたの擬似コード以下)

<a ng-href="/#/profile/{{ myCtrl.getServiceIdHref() }}">View</a> 

は、その後、あなたのコントローラに機能を追加します:

<a ng-if="data.serviceId" ng-href="/#/profile/{{data.serviceId}}">View</a> 
<a ng-if="commentReply.sender.serviceId" ng-href="/#/profile/{{commentReply.sender.serviceId}}">View</a> 

答えて

1

<a data-ng-href="/#/profile/{{data.serviceId && !commentReply.sender.serviceId ? data.serviceId : commentReply.sender.serviceId}}">View</a> 

または

<a href="/#/profile/{{data.serviceId && !commentReply.sender.serviceId ? data.serviceId : commentReply.sender.serviceId}}">View</a> 
1

表示1つのリンクとは、コントローラからのごhref値を取得する例えば

// inside myCtrl.js 

this.getServiceIdHref = function() { 
    if (data.serviceId exists in the DOM) { 
     return data.serviceId value 
    } elseif(commentReply.sender.serviceId exists in the DOM) { 
     return commentReply.sender.serviceId value 
    } 
} 
+0

この@Omriおかげで、すべての正直で2のより良い方法ですが、私はちょうどので、他の回答と一緒に行きましたが、この答えはへの「最良」の方法を説明するためには良いです「速い」何かを必要とこれを行う – Zabs

関連する問題