Javascript $rootScope未在简单AngularJs路由示例中呈现
我正试图通过$scope和$rootScope访问name和age,但出现了错误,尽管我觉得我做的都是正确的。有人能帮我找出哪里错了吗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
<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路由器。开始之前,先进行演练。