Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $rootScope未在简单AngularJs路由示例中呈现_Javascript_Angularjs_Rootscope - Fatal编程技术网

Javascript $rootScope未在简单AngularJs路由示例中呈现

Javascript $rootScope未在简单AngularJs路由示例中呈现,javascript,angularjs,rootscope,Javascript,Angularjs,Rootscope,我正试图通过$scope和$rootScope访问name和age,但出现了错误,尽管我觉得我做的都是正确的。有人能帮我找出哪里错了吗 <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> <script src="https://cdnjs.cloudfl

我正试图通过$scope和$rootScope访问name和age,但出现了错误,尽管我觉得我做的都是正确的。有人能帮我找出哪里错了吗

<html>

<head> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular-route.min.js"></script> 

</head> 

<body ng-app="myApp" ng-controller="myCtrl"> 

    <a href="#/one">One</a><a href="#/two">Two</a>

    <ng-view></ng-view>

    <script> 
    //app declaration
    var app = angular.module("myApp",['ngRoute']);

    //routing
    app.config(['$routeProvider',function($routeProvider){
        $routeProvider
        .when('/one',{templateUrl:'one.html'})
        .when('/two',{templateUrl:'two.html'})
        .otherwise({templateUrl:'one.html'});
    }]);

    //config 
    app.run(['rootScope', function($rootScope){
        $rootScope.age = 25;
    }]);

    //controller
    app.controller('myCtrl',function($scope, $rootScope){
        $scope.name = "Peter";
    });
    </script> 

</body> 

</html> 
two.html

ONE => {{name}},{{age}}
TWO => {{name}},{{age}}
更新错误:


您应该将ngRoute作为依赖项注入模块

var app = angular.module("myApp",[ngRoute]);

您应该将ngRoute作为依赖项注入模块

var app = angular.module("myApp",[ngRoute]);
您可以在中看到,第一个参数应该是一个函数

run(function(injectables) { // instance-injector
  // This is an example of a run block.
  // You can have as many of these as you want.
  // You can only inject instances (not Providers)
  // into run blocks
});
但在你的代码中

app.run('rootScope',function($rootScope,$state){
第一个参数是字符串,而不是函数

所以,只要删除它,或者如果您想在数组中使用可注入语法wrap

app.run(['$rootScope','$state',function($rootScope,$state){...}]}
但您似乎还有另一个错误:使用$state提供程序,但该提供程序不是
ngRoute
模块的一部分,而是ui路由器的一部分。无论如何,当运行块执行时,不能定义当前路由

无过量工作样品

//应用程序声明
var-app=angular.module(“myApp”,['ngRoute']);
//路由
app.config(['$routeProvider',函数($routeProvider){
$routeProvider
。当(“/one”{
模板:“一:{{name}}{{age}”
})
。当(“/two”{
模板:“两个:{{name}}{{age}”
})
.否则({
重定向到:'/one'
});
}]);
//配置
app.run(函数($rootScope){
$rootScope.age=25;
});
//控制器
app.controller('myCtrl',函数($scope,$rootScope){
$scope.name=“Peter”;
});

您可以在中看到,第一个参数应该是一个函数

run(function(injectables) { // instance-injector
  // This is an example of a run block.
  // You can have as many of these as you want.
  // You can only inject instances (not Providers)
  // into run blocks
});
但在你的代码中

app.run('rootScope',function($rootScope,$state){
第一个参数是字符串,而不是函数

所以,只要删除它,或者如果您想在数组中使用可注入语法wrap

app.run(['$rootScope','$state',function($rootScope,$state){...}]}
但您似乎还有另一个错误:使用$state提供程序,但该提供程序不是
ngRoute
模块的一部分,而是ui路由器的一部分。无论如何,当运行块执行时,不能定义当前路由

无过量工作样品

//应用程序声明
var-app=angular.module(“myApp”,['ngRoute']);
//路由
app.config(['$routeProvider',函数($routeProvider){
$routeProvider
。当(“/one”{
模板:“一:{{name}}{{age}”
})
。当(“/two”{
模板:“两个:{{name}}{{age}”
})
.否则({
重定向到:'/one'
});
}]);
//配置
app.run(函数($rootScope){
$rootScope.age=25;
});
//控制器
app.controller('myCtrl',函数($scope,$rootScope){
$scope.name=“Peter”;
});

在代码中,angular().run()被注入$rootScope和$state

app.run('rootScope',function($rootScope,$state){
    if($state.current.name == 'one'){$rootScope.age = 25;}
    if($state.current.name == 'two'){$rootScope.age = 30;}
});
由于$state不是ngRoute模块的一部分,因此不能将其注入。

在代码中,angular().run()被注入$rootScope和$state

app.run('rootScope',function($rootScope,$state){
    if($state.current.name == 'one'){$rootScope.age = 25;}
    if($state.current.name == 'two'){$rootScope.age = 30;}
});
由于$state不是ngRoute模块的一部分,因此无法注入它。

输入错误

 app.run(['rootScope', function($rootScope){
    $rootScope.age = 25;
}]);
应该是

 app.run(['$rootScope', function($rootScope){
    $rootScope.age = 25;
}]);
打字错误

 app.run(['rootScope', function($rootScope){
    $rootScope.age = 25;
}]);
应该是

 app.run(['$rootScope', function($rootScope){
    $rootScope.age = 25;
}]);

run block语法错误,DI PART使用未缩小角度版本表示可读错误,或go by link in error您不应编辑问题中的代码,并将代码从一个答案移动到另一个问题,因为在这种情况下,所有答案都不相关run block语法错误,DI PART使用未缩小角度版本表示可读错误,或者通过错误中的链接,您不应该编辑问题中的代码,并将代码从一个答案移动到另一个问题,因为在这种情况下,所有答案都不会被删除relevant@Deadpool,使用未缩小的角度脚本,并提供可读错误message@Deadpool,顺便说一句,你复制错了第二个解决方案:在
rootScope
@Deadpool之前忘记
$
,使用未缩小的角度脚本,并提供可读错误message@Deadpool顺便说一句,你复制错了第二个解决方案:在
rootScope
之前忘记
$
我需要包含什么文件?$state是ui路由器的一部分。这是ngRouter的一种替代方案。您可以使用ng路由器或ui路由器。我建议您使用ui路由器。开始之前,先进行演练。那么我需要包括什么文件?$state是ui路由器的一部分。这是ngRouter的一种替代方案。您可以使用ng路由器或ui路由器。我建议您使用ui路由器。开始之前,先进行演练。