0

こんにちは、私が持っているコントローラにディレクティブ foo があります

$scope.valid = false

テンプレートで分離スコープを使用して、別のディレクティブ内でこの変数を渡しています

<bar valid="valid">

テンプレート内で ng-if を使用する

<span ng-if="valid">Validated<span>

今、子ディレクティブで有効に更新すると。テンプレートで検証済みと表示されます。しかし、変数は親ディレクティブ コントローラーで更新されませんでした。なぜこれが起こっているのですか?

4

1 に答える 1

0

注: 私の子コントローラーでは、変数をスコープではなくコントローラーにアタッチしています。これがこのように振る舞う理由ですか。

実際、子ディレクティブコントローラーコードで、

function MyController($scope) {
    this.valid = $scope.valid;
}

のコピーを実行したため、コントローラ オブジェクトのvalidプロパティを設定しても は変更されません。$scope.validvalid

代わりに、引き続き使用$scopeして、変更に関する情報を親に渡します。

于 2015-09-05T09:08:39.853 に答える