0

このplkrでは、編集された値は src 内で検出されますが、src の外側の値は空白のままです。

plkr で別のラジオ ボタンを選択すると、外部の src が更新されません。

これを修正する理由と方法を教えてください。

4

2 に答える 2

1

これは、ng-include が独自のスコープを作成しており、ラジオ ボタンで割り当てる ng-model 値がそのスコープに限定されているためです。

そのため、本体の {{ filteringText }} は、filteringText が ng-model で設定されていることを認識していません。

次のように、ng-include のコンテンツを本文にシフトするとします。

  <body ng-controller="testCtrl">


    <div ng-include src="'input.html'"></div>

  <input type="radio" ng-model="filteringText" value="">All
  <input type="radio" ng-model="filteringText" value="Add">Add
  <input type="radio" ng-model="filteringText" value="Edit">Edit
  <input type="radio" ng-model="filteringText" value="Delete">Delete
  </br>
    Outside src : {{filteringText}}

次に、予想どおり、外側の src が ng-model 値で更新されていることがわかります。

ng-include 内からメイン アプリ スコープの値を更新する場合は、次のように、input.html ファイル内で $parent.value を使用できます。

<input type="radio" ng-model="$parent.filteringText" value="">All
<input type="radio" ng-model="$parent.filteringText" value="Add">Add
<input type="radio" ng-model="$parent.filteringText" value="Edit">Edit
<input type="radio" ng-model="$parent.filteringText" value="Delete">Delete
<br/>
Inside src : {{$parent.filteringText}}

これにより、ng-include 内で変更を行うと本体が更新されます。

于 2013-10-10T16:16:10.263 に答える