我想在我的网站上制作一个导航栏,所以我想在索引中放置用户所在的部分。
我遇到的问题是我不知道如何将变量从每个视图的控制器传递给 MasterController,这样当我更改部分时,它会在索引中自动更改。
我粘贴了我正在使用的示例的链接。
主控制器
angular.module('RDash')
.controller('MasterCtrl', ['$scope', '$cookieStore', MasterCtrl]);
function MasterCtrl($scope, $cookieStore) {
/**
* Sidebar Toggle & Cookie Control
*/
var mobileView = 992;
$scope.getWidth = function() {
return window.innerWidth;
};
$scope.$watch($scope.getWidth, function(newValue, oldValue) {
if (newValue >= mobileView) {
if (angular.isDefined($cookieStore.get('toggle'))) {
$scope.toggle = ! $cookieStore.get('toggle') ? false : true;
} else {
$scope.toggle = true;
}
} else {
$scope.toggle = false;
}
});
$scope.toggleSidebar = function() {
$scope.toggle = !$scope.toggle;
$cookieStore.put('toggle', $scope.toggle);
};
window.onresize = function() {
$scope.$apply();
};
}
控制器
/**
* Alerts Controller
*/
angular
.module('RDash')
.controller('AlertsCtrl', ['$scope', AlertsCtrl]);
function AlertsCtrl($scope) {
$scope.alerts = [{
type: 'success',
msg: 'Thanks for visiting! Feel free to create pull requests to improve the dashboard!'
}, {
type: 'danger',
msg: 'Found a bug? Create an issue with as many details as you can.'
}];
$scope.addAlert = function() {
$scope.alerts.push({
msg: 'Another alert!'
});
};
$scope.closeAlert = function(index) {
$scope.alerts.splice(index, 1);
};
}
事情是主修改索引,它是唯一的,它必须知道如何从控制器传递一个参数以及每个控制器对应的部分。
谢谢!
使用
$rootScope
. 请记住,所有控制器都有一个$scope
和所说的$scope
继承属性$rootScope
,这也适用于视图。我不会重现你的代码,但我会给你一个例子来说明我所说的
在所有情况下,正在显示/修改的值都是
$rootScope
尽管我使用$scope.global
. 这就是继承系统在做它的事情。直接从 del 运行时要小心,
$scope.propiedad
因为如果您不使用对象,它可能对您不起作用。如果您想绝对确定,请$rootScope
直接在那里注入并操作它。