gpt4 book ai didi

javascript - AngularJS - 为所有应用程序环境动态设置配置参数

转载 作者:行者123 更新时间:2023-11-30 17:40:16 25 4
gpt4 key购买 nike

您好,我正在尝试设置我需要的应用配置参数(全局配置参数)。

我是这样尝试的:

http://pastebin.com/PdQrzLT5

然后

<html ng-controller="ConfigController">

但这行不通,因为我每次刷新页面或每次路由更改时都需要刷新 $location.$$path。

我想设置一个配置参数列表,使它们成为全局参数,以便将它们用于 View 以及 app.js 整个文件中。

你平时怎么样?

最佳答案

解决方案:

  • 我使用 $rootScope 进行全局配置(不需要另一个 Controller )
  • 应该使用 $routeChangeStart/$routeChangeSuccess 来更新全局路由配置。
  • 使用 $location.path() 而不是 $location.$$path
  • 使用 $location.url() 而不是 $location.$$url

您可以像这样在运行 block 中收听 $routeChangeStart 事件:

app.run(function($rootScope, $location){
var update = function (){
$rootScope.config = {
appname: "Ouch" ,
appurl: $location.url(),
apppath: $location.path()
}

}
$rootScope.$on('$routeChangeStart', update)
update();
})

这是最佳实践吗?

  • 我的方法是使用使我的应用程序简单明了的东西。
  • 如果我的全局对象必须绑定(bind)到我 View 中的所有位置,那么 $rootScope 就是粘合剂。
  • 如果我只需要将值绑定(bind)到某些元素,我会在指令中使用 $route events

指令示例

app.directive('routeConfig', function($rootScope, $location){   
return {
scope: {},
templateUrl: "config-route.html",
link: function(scope, elm, attrs){

var update = function (){
$scope.config = {
appname: "Ouch" ,
appurl: $location.url(),
apppath: $location.path()
}

}

$scope.$on('$routeChangeStart', update)
update();
}
}
});

config-route.html:

<h1>route:</h1>
<ul>
<li> name: {{ config.appname}} </li>
<li> url: {{ config.appurl}} </li>
<li> path: {{ config.apppath}} </li>
</ul>

关于javascript - AngularJS - 为所有应用程序环境动态设置配置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com