いいえ、できません。Angular内、つまり関数内$scope
でのみ定義されます。外部からAngularスコープにアクセスする方法はいくつかありますが、これは通常は悪い習慣であり、Angularを正しく使用していないことを示しています。AngularCtrl
試行していることを実行するためのより角度のある方法は、アラートをコントローラーロジックの一部にすることです。
function AngularCtrl($scope) {
$scope.user_name = 'John';
$scope.sayHi = function(){
alert('Hi ' + $scope.user_name);
}
}
次に、さまざまな角度手法(デモはこちら)を使用して、その関数を呼び出すことができsayHi()
ます。いくつかの例:
クリックに応じて
<div ng-click="sayHi()">Demo clickable - Please click me</div>
特定の要素が作成/初期化されると自動的に1回
<div ng-init="sayHi()">Demo ng-init</div>
初期化時にコントローラーから直接
function AngularCtrl($scope) {
$scope.user_name = 'John';
$scope.sayHi = function(){
alert('Hi ' + $scope.user_name);
}
// Call it
$scope.sayHi();
}
これらの例が刺激的であることを願っていますが、実際に何をすべきかは、実際に達成しようとしていることによって異なります。