Javascript 角度JS作用域问题模块未读取控制器作用域
我用Angular 1.0.8创建了一个项目。我创建的项目正确设置了我的路由和控制器,当我尝试访问路由中的$scope时,它给了我一个问题,我必须去访问我使用$scope设置的范围变量。$$previsibling[variables]我设置了错误吗??我创建了一个具有相同结构的类似项目,它运行良好。我可以使用我的模块直接访问$scope吗Javascript 角度JS作用域问题模块未读取控制器作用域,javascript,angularjs,Javascript,Angularjs,我用Angular 1.0.8创建了一个项目。我创建的项目正确设置了我的路由和控制器,当我尝试访问路由中的$scope时,它给了我一个问题,我必须去访问我使用$scope设置的范围变量。$$previsibling[variables]我设置了错误吗??我创建了一个具有相同结构的类似项目,它运行良好。我可以使用我的模块直接访问$scope吗 function AppCtrl($scope) { $scope.navigation = [ { name: "main", route: "#/"
function AppCtrl($scope) {
$scope.navigation = [
{ name: "main", route: "#/" },
{ name: "edit", route: "#/edit" },
{ name: "save", route: "#/save" },
{ name: "settings", route: "#/settings" }
];
$scope.currentPage = null;
$scope.setCurrentPage = function (index) {
$scope.currentPage = $scope.navigation[index];
}
angular.forEach($scope.navigation, function (value, key) {
$scope[value.name + "Active"] = "";
})
$scope.setActive = function (name) {
angular.forEach($scope.navigation, function (value, key) {
$scope[value.name + "Active"] = "";
})
$scope[name + "Active"] = "active";
}
}
以下是我的模块设置:
angular.module('Sample', [])
.config(appRouter);
function appRouter($routeProvider) {
$routeProvider.when("/", {
templateUrl: "partials/default.html",
controller: function ($scope) {
console.log($scope.$$prevSibling.setActive);
}
})
}
<!DOCTYPE html>
<html ng-app="Sample">
<head>
<title>Sample Angular App</title>
<script src="Scripts/lib/basket.js"></script>
<link rel="stylesheet" href="css/global.css"/>
<link rel="stylesheet" href="css/style.css" />
<script src="Scripts/lib/angular.min.js"></script>
<script src="Scripts/controllers/app.js"></script>
<script src="Scripts/app.js"></script>
</head>
<body>
<div class="wrapper" ng-controller="AppCtrl">
<div class="navigation">
<ul class="cf">
<li ng-repeat="link in navigation" ng-class="{active:$index == activeIndex}" class="{{link.name}}"><a class="icon-{{link.icon}}" href="{{link.route}}"> {{link.name | uppercase}} </a></li>
</ul>
</div>
<div class="viewWrapper">
<div class="sidebarParent">
<div ng-include src="sidebarUrl" class="sidebar">
</div>
</div>
<div class="viewParent">
<div ng-view class="view">
</div>
</div>
</div>
</div>
</body>
</html>
angular.module('Sample',[])
.config(批准者);
功能批准者($routeProvider){
$routeProvider.when(“/”{
templateUrl:“partials/default.html”,
控制器:功能($scope){
log($scope.$$previsibling.setActive);
}
})
}
示例角度应用程序
style.css代表我的图标字体,global.css代表我的主样式,basketjs在本地存储一些脚本,以便我以后可以使用easeljs,ng repeat用于构建导航。一切正常,但只是范围关闭了??我得去看我的兄弟姐妹?controllers/app.js是AppCtrl所在的位置,Scripts/app.js是我的模块所在的位置。在研究了更多关于angular的内容后,我意识到$$prevSibling在元素的作用域链上,因此如果在下一个作用域级别中没有元素,那么您将收到一个空对象,因为那里没有任何对象。您在哪里使用
AppCtrl
?我们可以看到partials/default.HTML
的HTML代码吗?我有一个索引HTML文件,模块和控制器都是从同一个索引页调用的。partials正在工作。ajax请求正在正确加载这些页面,如果我为其创建一个jsbin可能会更好。但我不确定这个问题是否会重现。