0

AngularJS アプリケーション内のいくつかの小さな問題を修正しています。1 つのリンクのみを表示する以下のロジックを見つけました。

疑似コードスタイルで..

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
}

テンプレートのコード自体は次のようになります。以下のコードを修正してよりクリーンにし、単一行の 3 番目のステートメントを使用して行を複製しないようにするにはどうすればよいですか?

<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>
4

2 に答える 2

1

1 つのリンクを表示hrefし、コントローラーから値を取得します。

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

次に、コントローラーに関数を追加します (疑似コードに従います)。

// 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
    }
}
于 2016-09-07T14:26:23.840 に答える