AngularJS - 从 运行 方法访问 ng-init 变量
AngularJS - Accessing ng-init variables from run method
1) 我在 ng-init 中初始化了变量
例如 -
ng-init="password='Mightybear'";
2) 我想通过 .运行 方法访问它。
例如 -
anguar.module("ngApp", [])
.run(function() {
//Access password here
});
以下场景我已经尝试过,但没有成功 -
1) angular.module("ngApp", [])
.run(function($rootScope) {
console.log($rootScope.password) //undefined!!!
});
2) angular.module("ngApp", [])
.run(function($rootScope, $timeout) {
$(timeout(function() {
console.log($rootScope.password) //undefined!!!
});
});
我将向您展示 angular 如何加载
angular 模块 ---> .config ----> .运行 ----> 控制器(ng-init)
现在你可以清除你的方法了。
您无法在 run
块中获取 ng-init 值
Angular生命周期
- 配置阶段(app.config)($rootScope 在这里不可用)
- 运行 阶段 (app.run) ($rootScope 将在此处可用)
- 指令获取 Compile()
- 然后执行控制器、指令 link 函数、过滤器等。(
ng-init
在这里)
如果您想在 运行 阶段获得初始化值,那么您需要在配置阶段设置该值。
如果你想在配置中设置值那么你可以使用在配置阶段可用的app.constant
/provider
,不要使用被认为是AngularJS 中的错误模式。
代码
var app = angular.module('app', []);
app.constant('settings', {
title: 'My Title'
})
app.config(function(settings) {
setting.title = 'Changed My Title';
//here can you do other configurarion setting like route & init some variable
})
app.run(function(settings) {
console.log(settings.title);
})
1) 我在 ng-init 中初始化了变量 例如 -
ng-init="password='Mightybear'";
2) 我想通过 .运行 方法访问它。 例如 -
anguar.module("ngApp", [])
.run(function() {
//Access password here
});
以下场景我已经尝试过,但没有成功 -
1) angular.module("ngApp", [])
.run(function($rootScope) {
console.log($rootScope.password) //undefined!!!
});
2) angular.module("ngApp", [])
.run(function($rootScope, $timeout) {
$(timeout(function() {
console.log($rootScope.password) //undefined!!!
});
});
我将向您展示 angular 如何加载
angular 模块 ---> .config ----> .运行 ----> 控制器(ng-init)
现在你可以清除你的方法了。
您无法在 run
块中获取 ng-init 值
Angular生命周期
- 配置阶段(app.config)($rootScope 在这里不可用)
- 运行 阶段 (app.run) ($rootScope 将在此处可用)
- 指令获取 Compile()
- 然后执行控制器、指令 link 函数、过滤器等。(
ng-init
在这里)
如果您想在 运行 阶段获得初始化值,那么您需要在配置阶段设置该值。
如果你想在配置中设置值那么你可以使用在配置阶段可用的app.constant
/provider
,不要使用被认为是AngularJS 中的错误模式。
代码
var app = angular.module('app', []);
app.constant('settings', {
title: 'My Title'
})
app.config(function(settings) {
setting.title = 'Changed My Title';
//here can you do other configurarion setting like route & init some variable
})
app.run(function(settings) {
console.log(settings.title);
})