1

パスを渡したいディレクティブがあります

<mydirective api="/my/tomcat/server?asd=123&efg=456">

しかし、「Lexer Error: Unexpected next character」が表示されます。いくつかのエンコードを行う必要があると思います。誰かがアドバイスできますか?

4

2 に答える 2

2

コードを表示せずに字句解析エラーが発生する理由がわかりません。投稿を更新していただければ、その理由がわかるかもしれません。それまでの間、ディレクティブで属性値を取得する方法がいくつかあります。すべてが文字列リテラルで機能するわけではありません。

1)アイソ@レート スコープ バインディング: これは値を解析し、HTML と同じように機能します。解析は実際には後で行われるため、この値はディレクティブの内部メソッド (つまりlinkなど) ですぐには使用できず、ディレクティブのtemplateメソッドで使用するのが最適です。元。:

scope: {
    api: '@'
}

2)アイソ=レート スコープ バインディング: これは、属性を式として評価するため、式を一重引用符で囲むと機能します。元。:

scope: {
    api: '='
}

そしてあなたのHTMLで(一重引用符に注意してください):

<mydirective api="'/my/tomcat/server?asd=123&efg=456'">

3)属性の評価: これにより、属性文字列の値をディレクティブの内部メソッドから直接評価でき、HTML と同じように機能します。元:

link: function(scope,element,attrs){
    console.log(attrs.api);
}

ディレクティブの詳細については、こちらの AngularJS ディレクティブ ドキュメントを参照してください。

于 2013-06-19T20:21:07.127 に答える
0

Angular は api 属性の式を評価しようとします。引用符で囲む必要があります。

<mydirective api="'/my/tomcat/server?asd=123&efg=456'">

于 2013-06-19T20:13:15.203 に答える