2017-02-15 11 views
0

子コントローラテンプレートで親スコープ変数にどのようにアクセスしますか?子コントローラテンプレートの親スコープ変数へのアクセス - 角度

私は子コントローラ(時間ピッカー)を持っており、親コントローラによって子コントローラのボタンテキストを変更したいと考えています。親コントローラを使用して子テンプレートの値を変更するにはどうすればよいですか?

Plunkerコード:​​enter code here

答えて

1

子ビューは$スコープのプロパティに自動的にアクセスしてきました。普段のようにアクセスしてください。

親プロパティを変更することはやや困難です。親のプロパティを変更するためにsetterを使うことをお勧めします。通常どおり(値を割り当てるだけで)変更すると、親の既存の値を変更するのではなく、新しい値でローカルスコープのコピーが作成されます。

あなたの親コントローラ上で、次の操作を行います。

$scope.myValue = "foo"; 
$scope.changeMyValue = function (value) { 
    $scope.myValue = value; 
} 

は、その後、あなたの子コントローラからchangeMyValueメソッドを呼び出します。

子プロパティを変更する場合は、イベントを提案します。

イベントを発生するために、あなたの親のコントローラでこれを行います

$scope.$broadcast('myEventName', myValue); 

あなたはあなたの子供のコントローラ上で、このようにイベントを受け取ることができます。

$scope.$on('myEventName', (event, value) => handleEvent(value)); 
関連する問題