2016-11-10 5 views
0

を変更することなく、スコープの問題をngが-含まれ、このようになります私のテンプレートで選択ボックスがあります。(私のコントローラでは、今テンプレート

<div ng-include="'/views/program/program.html'"></div> 

<form name="myForm" class="fixed-select"> 
    <select name="repeatSelect" id="repeatSelect" 
      ng-model="selectedItem"> 
     <option ng-repeat="program in programs" 
       value="{{program.name}}"> 
     {{program.name}} 
     </option> 
    </select> 
</form> 

は私のテンプレートはちょうどこのですそれをMyCtrlと呼ぶ)selectItemを設定して、正しいものにロードさせることができます:

$scope.selectedItem = "Manage"; 

しかし、sele親のスコープ(ng-includeを持つテンプレートの現在のコントローラ(MyCtrl))には結びついていないと思うので、ctboxは手動で何も起こりません。

私はこれを修正する方法を探していましたが、$ parentや何かを含むようにテンプレートを変更することについてのいくつかのオプションがあります。それは本当に必要ですか?私は、ng-includeが既存のデータをカプセル化するための素晴らしい方法であり、変更なしで再び使用できることを期待していました。 ng-includeスコープをコントローラ(MyCtrl)に接続するにはどうすればよいですか?

お読みいただきありがとうございます。

EDIT1: 選択ボックスを移入されていることを「プログラム」は、文字列の配列だけです:[「メイン」、「など」]

+0

「ng-repeat」の代わりに、オプションリストに対して行われた 'ng-options'を使うようにselectを変更することから始めたいかもしれません。 – Claies

+0

以前はng-repeatを使っていましたが、問題はありませんでした。 ng-optionsがデフォルトのオプションを壊してしまいました。 – iamsampsan

+0

あなたはあなたが記述している振る舞いを検証できるように、質問を 'programs'配列の内容で少し更新することができますか? – Claies

答えて

0

それは私が継承するオブジェクトを作成している必要があることが判明しましたから。だから私のコントローラで$scope.selectedItemの代わりにselectedItem私のテンプレートでは、私はそれぞれ$scope.model.selectedItemmodel.selectedItemを使用しました。

another issue on stack overflowからこれについて学習しました。

関連する問題