問題タブ [angularjs-interpolate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - スコープに文字列として格納されているスクリプト タグを AngularJS テンプレートに出力するにはどうすればよいですか?
テンプレートで埋め込みスクリプトを使用する必要がありますが、スクリプトを実行する前に画像へのパスを動的に挿入します。
画像パスをスコープ変数として構築するディレクティブを作成し、これを使用してタグ$interpolate
に挿入しました。<script>
現在(文字列として)保存されている参照$scope.tag
は、スクリプトタグとして挿入および解釈/実行したいコードです。
代わりに、スクリプト タグがテンプレートに文字列として追加され、実際にスクリプト タグ文字列をスクリプト タグとして出力するために必要な追加の手順がわかりません。
テンプレートは次のとおりです (ディレクティブでは として参照されますtemplateUrl
)。
指令:
参考までに、この時点で、$scope.tag
変数には次の文字列が含まれます。
angularjs - divでAngularJSの補間を防ぐには?
div での補間を防ぐ方法はありますか? そこから生のhtmlを取得し、次のように挿入して手動で補間したい$interpolate
:
javascript - 複数の ng-repeat による補間エラー
補間エラーが発生しますが、たまにしかありません。エラーなしでページを数百回更新/ロードするか、最初のロード時に表示され、キャッシュをリロード/空にした後に再び表示されることがあります。エラーの原因と、ランダムに表示される理由がわかりません。
エラー: [$interpolate:interr] 補間できません: {{ showresult(all, two, figs, dates) }} TypeError: 日付が定義されていません
行 10023 を指しています。
JavaScript:
HTML:
編集:コンソールでエラーなしで置き換えtypeof(all) !== undefined
てangular.isDefined(all)
も、結果がまったく表示されないか、「未定義」として表示される場合、一部は正しく返されます。関数が呼び出されたときに変数が定義されていないため、タイミングの問題である可能性があると思います。
回避策: ビューから関数を呼び出す代わりに、ng-repeat と同じネスト構造を持つスコープ変数 (配列) を作成します。
に置き換えられます
エラーなしで動作しますが、元のコードの何が問題だったのか知りたいです。
javascript - AngularJS:値が未定義の場合に属性をレンダリングしない方法
次のようなディレクティブで使用されるテンプレートがあります。
col.sortField が存在しない場合、属性 st-sort はレンダリングされません (属性はまったくありません)。
$interpolate ウィッチの「allOrNothing」オプションについて読んだことがありますが、{{ }} 表記を使用するときにこのオプションを指定できるかどうかはわかりません。
私は ngAttr についても読んだことがあり、この表記 ng-attr-st_sort="{{col.sortField}}" を使用しようとしましたが、もう成功していません。
どんな助けでも大歓迎です。
ジャンマルク
angularjs - 角度補間、ng-bind および ng-translate の予期しない動作
ng-translate を使用する場合に ng-bind='blah' とは対照的に、Angular 補間 {{ blah }} を使用すると、予期しない動作の違いが見られます。したがって、非常に単純なコントローラーが与えられます
以下は、補間と ng-bind の両方を使用して完全に機能します..
出力中
さて、 ng-translateを導入し、最初に簡単な変換テーブルをセットアップします..
その後
生産する
次に、「translate-compile」を追加することで、「translate-values」の必要性がなくなり、親スコープへの「translate」アクセスが可能になります。同じ HTML で「translate-compile」が「translate-values」に置き換わります。
反対の結果を生む
たとえば、私のプランクを参照してください
javascript - angularJSテンプレートを使用してHTMLコードをDOMに追加し、AngularJSでそれらを補間する方法は?
私はいくつかのサービスを持っています。デバッグして、このサービスの変数の状態を確認したいです。私のコードは以下です(コードの下の説明):
だから、私はコントローラを持ついくつかのアプリを持っていますmainController
。その中でサービスを利用したいsomeService
。push
メソッドを使用しています。name
このメソッドは、引数からデータ サービスtotal
のcurrent
配列にデータをプッシュしますData
。initDebug()
ご覧のとおり、からメソッドを呼び出しmainController
たので、画面にデバッグ ウィンドウを表示します。current
arraysとdata-serviceの状態total
を表示したい。unlocked
Data
実際には、ウィンドウが画面に表示されますが、次のように表示されます。
そのため、AngularJS テンプレートは補間されませんでした。それらを補間する方法+このブロックでそれらをライブ更新する必要があります(angularJSが実際に行うように)。
アップデート
$コンパイルを使用します。
だから私は自分のinitDebugMode
機能をこのように変更する必要がありますか?:
$compile
サービスの2 番目のブラケットに変数を正確に渡すにはどうすればよいですか? 私はこれを正しく使用しましたか?
angularjs - AngularJS および Laravel Blade: interpolateProvider (区切り文字) を変更するとモジュール エラーが発生する
Laravel 5 (Blade 付き) と Angular 1.3 を組み合わせると奇妙な問題が発生します。
私はLaravelの経験がありますが、Angularの初心者です。Laravel の Blade で動作させるには、Angular の区切り文字を変更する必要があることを知っています。
だからここに私がしたことがあります:
View-File で ng-app と ng-controller を定義しました。私の目標は、JSON を反復処理することです。JSON は上記の JS の一部ではありません - 私はそれを認識しています。
$interpolateProvider コードを省略すると、すべてが機能し、コンソールにエラーは表示されません。しかし、それでは何も実行されなくなります。Uncaught Error が表示されます: [$injector:modulerr]
それをたどると、次のようになります: エラー: $injector:unpr 不明なプロバイダー
何か不足していますか?AngularJS Docs といくつかのチュートリアルのコードを試しました。それでいいはずです。このエラーが発生するたびに、私は夢中になります。
誰かがこれを手伝ってくれます。本当に感謝しています。
どうもありがとう、AFX