2016-06-20 4 views
0

親テンプレートに表示できるサブテンプレートは4種類あります。これらがフォーム内の異なる入力タイプであるとしましょう。私はサーバーからいくつかのデータを取得し、検索されたデータでこれらのテンプレートをフィードしたい(オプションの入力フィールドを選択する)。サブテンプレートにAngularJSのデータを入力するにはどうすればよいですか?

私はこのようなものを使用します:

<ng-include src="'./path/to/template/input/' + vm.data.type + '.html'"></ng-include> 

をしかし、私はそれのためのさまざまなデータをこのテンプレートより多くの時間を使いたいです。このように:

<select> 
     <option ng-repeat="option in myOptionsData">{{option.text}}</option> 
</select> 

Iは種類のデータのためのパラメータ(上記からmyOptionsData)との関数のようなUIのこの部分を呼び出すことエーブルされるべきです。これはどのようにして適切に解決されますか?私はデータがサービスによって渡される新しいコントローラについて読んでいますが、各タイプのサブテンプレートのサービスを作成することは非常に面倒です。何か不足していますか?

答えて

0

それはあなたが何かのように、あなたのHTMLで使用することができ、一種の簡単です:だから、あなたのコントローラでこれを行うことができ

<ng-include src="vm.resolveUrl(vm.data.type)"> 
</ng-include> 

$scope.resolveUrl = function(param) { 
    return "./path/to/template/input/" + param + ".html" 
} 

より適切な方法この問題を解決するにはより簡単に保守することができ、さらに読みやすいコードです。それがあなたのために働くかどうか私に知らせてください!

+0

いいえ、問題ではありません。私はサブテンプレート内のデータを必要とします。私は例を使って質問を編集しました。 – mrpool89

0

回答はthisです。ソリューションは、このようなデータをng-includeにònload`attributeを与えることです:それは正常に動作します

<ng-include src="'./path/to/template/input/' + vm.data.type + '.html'" onload="myOptionsData=vm.someData"></ng-include> 

、私はむしろ、よりよい解決策がありwhethere知っているように思います。

関連する問題