在控制器外调用 service/factory
Invoke service/factory outside of controller
我有一个处理所有用户功能的 userService
。为了用数据填充它,我的 _Layout.cshtml
创建了一个全局 currentUser
变量,然后我想将其放入我的 userService
中。我如何在 bootstrap 期间执行此操作?
感觉我应该可以做这样的事情:
var myApp = angular.module('myApp', [...]);
var userService = myApp.create("userService");
userService.setUser(currentUser);
您可以使用 run
在使用控制器之前执行此操作。大致如下:
myApp.run(['userService', function(userService){
userService.setUser(currentUser); // Consider injecting currentUser, too...
}]);
如果它需要在触发 run
事件之前完成(不过,一般来说,对于这种事情 run
应该足够了),你可能想把它放在config
函数 (myApp.config(/*etc.*/);
)。
但是,这些无法访问典型的 Service
提供商,因此您必须更加自定义:
我有一个处理所有用户功能的 userService
。为了用数据填充它,我的 _Layout.cshtml
创建了一个全局 currentUser
变量,然后我想将其放入我的 userService
中。我如何在 bootstrap 期间执行此操作?
感觉我应该可以做这样的事情:
var myApp = angular.module('myApp', [...]);
var userService = myApp.create("userService");
userService.setUser(currentUser);
您可以使用 run
在使用控制器之前执行此操作。大致如下:
myApp.run(['userService', function(userService){
userService.setUser(currentUser); // Consider injecting currentUser, too...
}]);
如果它需要在触发 run
事件之前完成(不过,一般来说,对于这种事情 run
应该足够了),你可能想把它放在config
函数 (myApp.config(/*etc.*/);
)。
但是,这些无法访问典型的 Service
提供商,因此您必须更加自定义: