2017-05-30 6 views
1

いくつかの説明が含まれている動的HTMLテンプレートを読み込む際に問題が発生します。私が持っている基本的な要件は、特定のボタンをクリックすると、対応するHTMLファイルをロードする必要があるときです。 jsonファイルからパスを取得します。 私は私のコードを共有していると私は、JSONからURLを読み込み、表示することができるよしかし、私は、そのhtmlページ外部jsonファイルからパスを取得して動的にHTMLテンプレートをロードする方法

#index.htmlを

<div> 
{{descriptionUrl}} 

<div ng-include="'./api-data/{{descriptionUrl}}'"></div> 

</div> 

action.jsonの内容を表示することはできません

{ 
    "Product": [{ 

     "descriptionUrl":"view.html" 
    }, 
    { 
     "descriptionUrl":"add.html" 

    } 

    ] 

} 

#view.html 
<h1>view</h1> 

#add.html 
<h1>add</h1> 
+0

あなたが直面しているエラーは何ですか? – Paras

+0

@パラース:私は直面しているエラーは "

"これを使用するこの正しい方法ですか? mu descriptionLrlには、特定のページ(.html) –

答えて

1

まず、現在のスコープに対するあなたの式を評価NG-含まれています。したがって、固定パスを使用する場合は、引用符を使用して文字列リテラルにする必要があります。あなたは、パスを動的にロードする場合は、最初の有効なパスは、あなたは、あなたがより扱いコーディングしたい場合は、この

ng-include="'partial_path_1' + any_value_in_scope + 'again_fixed_path.html'" 

のようなパスを作成したりすることができますいずれか、

ng-include="'fixed_path'"

です単に、あなたの質問に答えるために

ng-include="returnPathFromScope()" 

を置くことができます

ng-include="'/api-data/' + descriptionUrl" 
+0

ありがとうmahn働いた(Y) –

+0

私はそれが助けてうれしいです。 – Paras

+0

@ Paras:このような関数を書いてhtml $ scope.display = function(){ var template = $ templateCache.get( "./ api-data /" + $ scope.descriptionUrl); }

0

動的な動作のためには、以下のようにng-includeをsrcと一緒に使用してください。

<ng-include src="{{your url}}"></ng-include> 

参考:すべてのhttps://docs.angularjs.org/api/ng/directive/ngInclude

+0

の内容を表示したいボタンをクリックしたときのhtmlパスがすべて含まれていますが、{{url}}これはシステムがそれを受け入れないことを文字列形式で知っています –

+0

""で定義しなければならない文字列の場合は{{}}の中の変数と同様に文字列形式を使用します。 –

+0

それは動作していませんそれは404エラーが見つかりませんでした –

関連する問題