内部角色的角度范围

时间:2012-12-12 09:36:51

标签: javascript angularjs javascript-framework

我们可以使用在脚本标记内的范围内定义的角度变量,如下所示。

HTML CODE:

<div ng-controller="AngularCtrl">
 <script>
  alert($scope.user_name);
 </script>
</div>

JS CODE:

function AngularCtrl($scope){
 $scope.user_name = 'John';
}

我只是得到'$ scope未定义'。有人可以帮我解决我在这里做错的事吗?

1 个答案:

答案 0 :(得分:15)

不,你不能。 $scope仅在 Angular中定义,即在AngularCtrl - 函数内。有一些方法可以从外部访问角度范围,但这通常是不好的做法,并且表明您没有正确使用Angular。

更有思想的方法来做你正在尝试的是让警报成为控制器逻辑的一部分:

function AngularCtrl($scope) {

    $scope.user_name = 'John';

    $scope.sayHi = function(){
        alert('Hi ' + $scope.user_name);
    }
}

然后,您可以使用各种角度技术(Demo Here)来调用sayHi()函数。一些例子:

响应点击

<div ng-click="sayHi()">Demo clickable - Please click me</div>

创建/初始化给定元素时自动执行一次

<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();
}

希望这些例子具有启发性,但你真正应该做的事情取决于你真正想要实现的目标。