访问全局变量

时间:2014-10-29 16:28:24

标签: javascript angularjs

我尝试在angularjs项目中设置根作用域,这样我就可以从HTML中的任何位置访问名称(而不是在ng-view中)。

<!DOCTYPE html>
<html lang="en" ng-app="phonecatApp" ng-controller="ApplicationController">

</html>

封装了整个页面

我已经加载了一个名为app.js的js文件,其中包含以下内容;

var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.factory('UserService', function(){
    return {
        name : 'Tom'
    };
})

function ApplicationController($scope, UserService){
    $scope.username = UserService.name
}

我试图在index.html中执行以下操作:

<a href="#index" class="nav-item name_p_nav">{{username}}</a> 

但它只是空白

编辑:修正错误

2 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。更改声明控制器的方式。并且为了使用$ scope变量,你必须声明它,可能你应该收到脚本错误,因为它没有声明,请使用开发人员工具检查浏览器以找出确切的错误。

phonecatApp.controller('ApplicationController',['$scope',function ($scope){
 $scope.username = UserService.name

}]);

答案 1 :(得分:0)

我试图重现问题,我很快创建了一个应用程序,它对我有用!在这里,我发布了我的示例代码,只是看一下。

<html lang="en" ng-app="phonecatApp" ng-controller="ApplicationController">
<head>
    <script src="../Scripts/lib/angular.min.js"></script>
    <script src="../Scripts/Application1.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
</head>
<body>
    <a href="#index" class="nav-item name_p_nav">{{username}}</a> 
</body>

脚本:

var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.factory('UserService', function(){
return {
        name : 'Tom'
};
})

function ApplicationController($scope, UserService){
$scope.username = UserService.name
}