Angular 2テンプレートで変数を定義するにはどうすればよいですか?

私が使用しているテンプレートのどこかにあるとしましょう:

<div *ng-for="#fooItem of foo">
    {{fooItem.bar.baz.value}}
</div>

ループ内で毎回{{theBaz}}使用するのではなく、次のようなものを記述できるようにしたいfooItem.bar.bazと思います。それを達成する方法はありますか?多分任意の変数を定義することを可能にするいくつかの構文?

ドキュメントには、値を設定するコンポーネント/ディレクティブが、どうやら何も単純に伴う用途に言及しています。

アシュリークールマン

考えられる解決策の1つは、小さなAngular2パイプを使用することです。

get-the-baz.ts:

import {Pipe} from 'angular2/angular2';

@Pipe({
    name: 'theBaz'
})

export class GetTheBaz {
    transform(item) {
        return item.bar.baz.value
    }
}

そしてあなたのアプリでは:

import {Component, bootstrap, NgFor} from 'angular2/angular2';
import {GetTheBaz} from './get-the-baz';

@Component({
    selector: 'my-app',
    directives: [NgFor],
    pipes: [GetTheBaz],
    template: `QuickApp: 
    <div *ng-for="#item of list">
        {{item|theBaz}}
    </div>
    `
})

ユースケースに応じて、これは良い考えかもしれませんし、そうでないかもしれません。

編集:さらに2つのソリューション

私が追加した以下のコードをチェックしてください:

  1. リストの配管と、
  2. 古き良き機能

比較のために、アイテムソリューションに上記のパイプも含めました

import {Component, bootstrap, NgFor} from 'angular2/angular2';
import {Pipe} from 'angular2/angular2';

// This may not be the most efficient way, I'll do some research and edit in a moment
var _getC = val => (val && val['a'] && val.a['b'] ) ? val.a.b['c'] : null; 


@Pipe({
    name: 'pipeC'
})
export class pipeC {
    transform(val) {
        return _getC(val)
    }
}

@Pipe({
    name: 'pipeCFromList'
})
export class pipeCFromList {
    transform(list) {
        return list.map(_getC);
    }
}

@Component({
    selector: 'my-app',
    directives: [NgFor],
    pipes: [pipeC, pipeCFromList],
    template: `QuickApp:
    <p>pipe item:</p> 
    <div *ng-for="#item of list">
        <item [text-content]="item|pipeC"> </item>
    </div>

    <p>pipe list:</p>
    <div *ng-for="#num of list|pipeCFromList">
        <item [text-content]="num"> </item>
</div>
    <p>func item:</p>
    <div *ng-for="#item of list">
        <item [text-content]="getC(item)"> </item>
</div>
    `
})

class AppComponent {
    public getC (val) {
        return _getC(val);
    };
    list = [{a:{b:{c:1}}}]
}
bootstrap(AppComponent);

サイズも試してみてください^

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テンプレートのプロパティバインディングに使用できるように、Angular 2でグローバル変数を定義するにはどうすればよいですか?

分類Dev

Angular2で<html>テンプレートを使用するにはどうすればよいですか?

分類Dev

Angularアプリのejsテンプレートに渡されるJS変数を使用するにはどうすればよいですか?

分類Dev

Expressから渡された変数をAngularテンプレートで表示するにはどうすればよいですか?

分類Dev

テンプレート(Angular2 / TypeScript)でHTMLの文字列をHTMLに変換するにはどうすればよいですか?

分類Dev

Angular UI Bootstrap Datepickerでテンプレートを使用するにはどうすればよいですか?

分類Dev

Angularで完全な動的テンプレートを構築するにはどうすればよいですか?

分類Dev

Angular2テンプレートで非同期promise関数の結果を表示するにはどうすればよいですか?

分類Dev

Angular 2テンプレート内でDjangoテンプレートを使用するにはどうすればよいですか?

分類Dev

あるビューで設定された入力変数を別のビュー(テンプレート)の変数として使用するにはどうすればよいですか?Angular

分類Dev

プログラムでAngular 2フォームコントロールをダーティに設定するにはどうすればよいですか?

分類Dev

Angular 2コンポーネントのプロパティのデフォルト値を設定するにはどうすればよいですか?

分類Dev

クリックイベントをangular2テンプレート補間にバインドするにはどうすればよいですか?

分類Dev

Angular 2コンポーネントのhtmlテンプレートを取得するにはどうすればよいですか?

分類Dev

Angular 2 ng2テンプレート内でTypeScript列挙型を使用するにはどうすればよいですか?

分類Dev

Angular 2でルート変更をキャンセルするにはどうすればよいですか?

分類Dev

カルマ+ジャスミンを使用してAngular2のローカル変数をテストするにはどうすればよいですか?

分類Dev

Angularディレクティブの変数を変更するにはどうすればよいですか?

分類Dev

Angular 2+では、Angularディレクティブも適用されている場合、ネイティブ要素をテンプレート変数にバインドするようにどのように指定しますか?

分類Dev

PHPからAngular定義変数に値をプッシュするにはどうすればよいですか?

分類Dev

複数のAngular 2プロジェクト間でAngular 2コンポーネントを共有するにはどうすればよいですか?

分類Dev

Angularでランタイムテンプレートを使用してコンポーネントを作成するにはどうすればよいですか?

分類Dev

(Angular)コンポーネントテンプレートで「link」タグを無効にするにはどうすればよいですか?

分類Dev

Angular 2で新しいオプションを選択するたびに関数をトリガーするにはどうすればよいですか?

分類Dev

Angularアプリに現在ロードされているテンプレートURLを取得するにはどうすればよいですか?

分類Dev

ブラウザのconfirm()をAngularテンプレートステートメントと一緒に使用するにはどうすればよいですか?

分類Dev

Angularテンプレート内でインライン関数を定義できないのはなぜですか?他にどのようにそれを行うのですか?

分類Dev

Angular 2で、テンプレート駆動型フォームを使用するときに非同期バリデーターを設定するにはどうすればよいですか?

分類Dev

AngularのコンポーネントのテンプレートにHTMLファイルをロードするにはどうすればよいですか?

Related 関連記事

  1. 1

    テンプレートのプロパティバインディングに使用できるように、Angular 2でグローバル変数を定義するにはどうすればよいですか?

  2. 2

    Angular2で<html>テンプレートを使用するにはどうすればよいですか?

  3. 3

    Angularアプリのejsテンプレートに渡されるJS変数を使用するにはどうすればよいですか?

  4. 4

    Expressから渡された変数をAngularテンプレートで表示するにはどうすればよいですか?

  5. 5

    テンプレート(Angular2 / TypeScript)でHTMLの文字列をHTMLに変換するにはどうすればよいですか?

  6. 6

    Angular UI Bootstrap Datepickerでテンプレートを使用するにはどうすればよいですか?

  7. 7

    Angularで完全な動的テンプレートを構築するにはどうすればよいですか?

  8. 8

    Angular2テンプレートで非同期promise関数の結果を表示するにはどうすればよいですか?

  9. 9

    Angular 2テンプレート内でDjangoテンプレートを使用するにはどうすればよいですか?

  10. 10

    あるビューで設定された入力変数を別のビュー(テンプレート)の変数として使用するにはどうすればよいですか?Angular

  11. 11

    プログラムでAngular 2フォームコントロールをダーティに設定するにはどうすればよいですか?

  12. 12

    Angular 2コンポーネントのプロパティのデフォルト値を設定するにはどうすればよいですか?

  13. 13

    クリックイベントをangular2テンプレート補間にバインドするにはどうすればよいですか?

  14. 14

    Angular 2コンポーネントのhtmlテンプレートを取得するにはどうすればよいですか?

  15. 15

    Angular 2 ng2テンプレート内でTypeScript列挙型を使用するにはどうすればよいですか?

  16. 16

    Angular 2でルート変更をキャンセルするにはどうすればよいですか?

  17. 17

    カルマ+ジャスミンを使用してAngular2のローカル変数をテストするにはどうすればよいですか?

  18. 18

    Angularディレクティブの変数を変更するにはどうすればよいですか?

  19. 19

    Angular 2+では、Angularディレクティブも適用されている場合、ネイティブ要素をテンプレート変数にバインドするようにどのように指定しますか?

  20. 20

    PHPからAngular定義変数に値をプッシュするにはどうすればよいですか?

  21. 21

    複数のAngular 2プロジェクト間でAngular 2コンポーネントを共有するにはどうすればよいですか?

  22. 22

    Angularでランタイムテンプレートを使用してコンポーネントを作成するにはどうすればよいですか?

  23. 23

    (Angular)コンポーネントテンプレートで「link」タグを無効にするにはどうすればよいですか?

  24. 24

    Angular 2で新しいオプションを選択するたびに関数をトリガーするにはどうすればよいですか?

  25. 25

    Angularアプリに現在ロードされているテンプレートURLを取得するにはどうすればよいですか?

  26. 26

    ブラウザのconfirm()をAngularテンプレートステートメントと一緒に使用するにはどうすればよいですか?

  27. 27

    Angularテンプレート内でインライン関数を定義できないのはなぜですか?他にどのようにそれを行うのですか?

  28. 28

    Angular 2で、テンプレート駆動型フォームを使用するときに非同期バリデーターを設定するにはどうすればよいですか?

  29. 29

    AngularのコンポーネントのテンプレートにHTMLファイルをロードするにはどうすればよいですか?

ホットタグ

アーカイブ