2016-10-31 14 views
0

コントローラの外側から角度コントローラの内部にある関数を呼び出そうとしています。私のコードは次のようになります。私が達成したい何外側から角度コントローラ内の関数をトリガする

var myApp = angular.module('myApp'[]) 
    .controller('MainController', ['$scope', function($scope) { 
    $scope.message = function() { 
     alert('Hello World'); 
    }; 
}]); 

function talk() { 
    // message() 
} 

は私のトーク()機能の中から、私のメッセージ()機能にアクセスすることです。

私のアプリケーションには多くのコードが含まれているので、それは私にとっては最も簡単な方法ですが、もっと良い解決策が分かっていれば教えてください。

ありがとうございます!

答えて

0

コントローラのコードを範囲外で使用することは悪い習慣です。しかし、DOMで要素を選択できる場合は、「範囲」を取得できるはずです。ないあなたのあなたの角度のバージョンに応じて、

を使用して、角度のバージョンを確認してください。

var scope = angular.element(document.getElementById('yourMainControllerElementID')).injector().‌​get('$rootScope') 

または

angular.element(document.getElementById('yourMainControllerElementID')).scope().message(); 

コントローラの範囲を返すに.get。悲しいことに、それは動作しませんでした、あなたの答えのためにhttps://stackoverflow.com/a/16737459/1392634

+0

ありがとう:

はよりこっちをお読みください。あなたはこのメソッドが非常に悪い練習であることを悲しいので、私は時間がかかり、私のアプリケーションを再構築します。 –

関連する問題