1

angular 2でes5およびes6構文を使用して入力を取得する方法を理解しようとしています。私はそれが可能であることを知っていますが、それで見つけることができる唯一のドキュメントは@記号を使用しています。コンパイラを使用できるので、コードを es5 と es6 だけで書かなければなりません コンパイラはありません typescript はまったくありません (私は自分のコンピューターで typescript コンパイラを取得しようとしましたが、現在の環境ではできません) 方法を知っている人はいますか? es5 と es6 だけを使用して入力を機能させる。ここに私が試したものがありますが、入力用にある種のインジェクターが必要だと考え続けていますが、タイプスクリプト構文以外にインジェクターに関するドキュメントを見つけることができません

app.headerbtn = ng.core.Component({
    selector : 'header-btn',
    template : "<div class='headerbtn'>hello {{text}}</div>",
    inputs : ["text"]
}).Class({
    constructor : [function() {
        console.log(this);
    }],
    ngDoCheck : function() {
        this.text=this.text||'hi';
        console.log(this);
    }
});

それから私のhtml

<header-btn [text]='hello world'></header-btn>

コンポーネントは正常にブートストラップされ、コンストラクタ オブジェクトがコンソールに 2 回出力されます。最初の問題は空のオブジェクトです (まだ初期化されていないため、これは理にかなっています)。this.textが以前に定義されていないことを意味します。または後続のチェックで、dom は hi を{{text}}

4

1 に答える 1

0

問題は、式ではない値で [text] (補間) を使用することです。TypeScript でも同じ問題が発生します。これを試すことができます:

<header-btn text="hello world"></header-btn>

式の場合:

<header-btn text="someExpression"></header-btn>

[テキスト] を使用する場合は、'' で式を定義する必要があります。

<header-btn [text]="\'hello world\'"></header-btn>

これを説明する plunkr は次のとおりです

于 2016-02-12T15:55:07.403 に答える