javascript - AngularJS 动态注入(inject)范围或 Controller

标签 javascript angularjs

是否可以在运行期间注入(inject)作用域或 Controller ? 或任何其他将服务动态注入(inject) Controller 的建议?

Application.controller('IndexController', function($scope){

    // some actions

    if(someconditions) {
            $scope.$inject = [someServiceName];
            // and here i want to use service methods 
    }

});

提前致谢

最佳答案

可以使用 $injector 将服务动态注入(inject)(按名称)到 Controller 中.能够通过 Controller 参数注入(inject)服务只是 Angular 提供的一种便利。在幕后,Angular 使用 $injector 来检索对象实例。但是我们也可以自己使用 $injector。

function MyCtrl($scope, $injector) {
  $scope.doSomething = function(someService) {
    var service = $injector.get(someService)  // someService contains the name of a service
    service.value += 10
}

Fiddle .

关于javascript - AngularJS 动态注入(inject)范围或 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14415845/

相关文章:

angularjs - ngModel 的清理

javascript - 如何同时打开 Chrome 文本区域中的多个链接作为新选项卡?

php - JavaScript 将多个 jpeg 从 Flash (AS3) 传递到 PHP

javascript - TypeScript 不会对稍后初始化的 ANY 变量抛出错误

javascript - Angular 自定义验证指令 - 如何正确跳过 ng-disabled 字段?

javascript - Angular 是如何读取插值的?

javascript - 防止 JavaScript keydown 事件在按住时被多次处理

javascript - 为什么图像文件输入会横向显示(翻转)?

angularjs - res.send() 在 Node 中不起作用

javascript - 如何使用 angularjs webapp 渲染登陆页面?