我需要一个角度控制器范围说明的指南。
我的应用在控制器文件夹中有不同的控制器。页面文件夹中每个控制器的不同页面。我的观点是我应该如何管理全局内容的控制器,例如include文件夹中的breadcrums。面包棒不属于我为每条路线定义的任何控制器。
我遇到的问题是我需要更改每个控制器的breadcrum变量。
那么如何将数据传递到面包棒中呢?我应该使用globalScope吗?
答案 0 :(得分:3)
我建议使用AngularJS服务,比如'Breadcrumb'服务。此服务可以跟踪面包屑,每个控制器都可以使用该服务访问面包屑。
这是一个非常基本的示例,其中包含面包屑的字符串。
var myApp = angular.module('myApp', []);
myApp.factory('Breadcrumb', function() {
return {breadcrumbString: "Home > Page > SubPage"}
})
function PageCtrl($scope, Breadcrumb){
$scope.breadcrumb = Breadcrumb;
}
function SubPageCtrl($scope, Breadcrumb){
$scope.breadcrumb = Breadcrumb;
}
这里有一个工厂用于创建服务实例,如AngularJS文档中所述:
请注意,您没有注册服务实例,而是注册a 在调用时将创建此实例的工厂函数。
有关详细信息,建议您查看以下内容: