Javascript 在Angular JS中的.config服务中设置变量?
我有这个密码Javascript 在Angular JS中的.config服务中设置变量?,javascript,angularjs,variables,dynamic,config,Javascript,Angularjs,Variables,Dynamic,Config,我有这个密码 spa.factory("linkFactory", function() { var linkFactoryObject = {}; linkFactoryObject.currentLink = "home"; return linkFactoryObject; }); 这个代码段充当一个全局变量,我在不同的控制器之间设置和读取它。此变量控制标记为活动的链接 我的代码运行得非常好。唯一的问题是,如果您第一次进入我的网页时我没有在工厂中设置初始值,则主页
spa.factory("linkFactory", function() {
var linkFactoryObject = {};
linkFactoryObject.currentLink = "home";
return linkFactoryObject;
});
这个代码段充当一个全局变量,我在不同的控制器之间设置和读取它。此变量控制标记为活动的链接
我的代码运行得非常好。唯一的问题是,如果您第一次进入我的网页时我没有在工厂中设置初始值,则主页链接将不会设置为活动。如果我设置了初始值,那么当有人刷新页面时,该值将重置为初始值。这意味着主页链接将处于活动状态,但实际上您将位于不同的页面上
此外,我尝试使用$location.path获取路径并根据该值构建函数,但$location.path是静态的,因此也不起作用
我有一个路由片段,它控制我加载的内容
spa.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/home', {
templateUrl: '/partials/home.html'
})
.when('/about', {
templateUrl: '/partials/about.html'
})
.when('/skills', {
templateUrl: '/partials/skills.html'
})
.when('/experience', {
templateUrl: '/partials/experience.html'
})
.when('/resume', {
templateUrl: '/partials/resume.html'
})
.when('/contact', {
templateUrl: '/partials/contact.html'
})
.otherwise({
redirectTo: '/home'
});
});
如果我可以在这里设置一个变量,我可以在我的控制器中读取它,我会很乐意去做,但我不确定如何去做
我如何才能做到这一点?试试这个。当状态改变时,它应该设置路由的url
spa.factory("linkFactory", function() {
var linkFactoryObject = {};
linkFactoryObject.currentLink = "home";
linkFactoryObject.setRoute = function(route)
{
linkFactoryObject.currentLink = route;
};
return linkFactoryObject;
});
spa.run(['linkFactory','$rootScope',function(linkFactory,$rootScope) {
$rootScope.$on('$routeChangeStart', function(event, next, current) {
linkFactory.setRoute(next.$$route.originalPath);
});
});
而不是注册$routeChangeStart事件。如果不需要为每个页面定义单独的控制器,也可以定义默认控制器。在控制器中,您可以将值设置为当前链接 我建议您仅为此定义一个范围变量,并检查范围变量以为链接设置适当的类 这上面有一条很好的线
您应该将工厂转换为提供程序,以便可以在配置阶段内访问。如何在when函数中定义范围变量?@Allenph我的意思是在控制器中定义范围变量。我建议为每个页面定义一个控制器,并将控制器注册到when函数中的页面。这似乎有点重复,而且是一种不需要的方式,因为我提供的是不需要控制器的静态内容。这是唯一的选择吗?