1. ホーム
  2. angularjs

[解決済み] AngularJSのjs関数外からのアクセススコープ

2022-06-09 22:37:55

質問

外部のJavaScript関数(対象のコントローラには全く関係ありません)を使って、コントローラの内部スコープにアクセスする簡単な方法がないか試しています。

私はここで他のいくつかの質問で、以下のことを見ました。

angular.element("#scope").scope();

は DOM 要素からスコープを取得しますが、私の試みは現在適切な結果を得ていません。

以下は、jsfiddleです。 http://jsfiddle.net/sXkjc/5/

私は現在、プレーンJSからAngularへの移行を進めています。これを達成しようとしている主な理由は、オリジナルのライブラリコードを可能な限りそのままにしておくことです; 私が各関数をコントローラに追加する必要性を省くためです。

これを達成するためにどうすればいいか、何かアイデアはありますか?上記のフィドルに対するコメントも歓迎します。

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

あなたは $scope.$apply() を使用する必要があります。これは、jquery/javascriptのイベントハンドラのように、angularjsの制御外からスコープの値に何らかの変更を加えたい場合です。

function change() {
    alert("a");
    var scope = angular.element($("#outer")).scope();
    scope.$apply(function(){
        scope.msg = 'Superhero';
    })
}

デモ フィドル