1. ホーム
  2. javascript

[解決済み] AngularJSで親スコープの変数を更新する

2022-09-28 19:21:01

質問

2つのコントローラがあり、1つは別のコントローラにラップされています。子スコープが親スコープからプロパティを継承していることはわかりましたが、親スコープの変数を更新する方法はあるのでしょうか。これまでのところ、私は明白な解決策に出会っていません。

私の状況では、フォームの中にカレンダーコントローラがあります。親スコープ (フォーム) から開始日と終了日を更新して、フォームが送信されたときに開始日と終了日を持つようにしたいと思います。

どのように解決するのですか?

親スコープでオブジェクト (プリミティブではない) を使用し、子スコープから直接更新する必要があります。

親です。

app.controller('ctrlParent',function($scope){
    $scope.parentprimitive = "someprimitive";
    $scope.parentobj = {};
    $scope.parentobj.parentproperty = "someproperty";
});

子です。

app.controller('ctrlChild',function($scope){
    $scope.parentprimitive = "this will NOT modify the parent"; //new child scope variable
    $scope.parentobj.parentproperty = "this WILL modify the parent";
});

動作デモ : http://jsfiddle.net/sh0ber/xxNxj/

参照 AngularJSのスコーププロトタイパル/プロトタイパル継承のニュアンスを教えてください。