angularjs - 将资源动态注入(inject) Controller - angularjs

标签 angularjs

这有效:

function DetailsCtrl($scope, Plan){
    $scope.entities = Plan.query();
}

这不会:
function DetailsCtrl($scope){
    var injector = angular.injector(['myApp.services']);
    var name = 'Plan';
    var Entity = injector.get(name);

    $scope.entities = Entity.query();
}

在第二种情况下,不会引发错误,并且 console.log($scope.entities) 会转储加载的实体。但是变量没有在模板中呈现。我猜在用变量填充 $scope 之前正在加载模板。如果是这样,我如何确保 $scope 及时加载了变量?

最佳答案

我创建了一个服务来动态加载资源:

服务:

var m = angular.module('myApp.services', ['ngResource']).
    factory('Entity',function($resource){
        return {
            Plan: $resource('/api/plans/:id',{id: '@id'})
        }
    }).
  value('version', '0.1');

Controller :
function DetailsCtrl($scope, Entity){
    $scope.entities = Entity['Plan'].query();
}

关于angularjs - 将资源动态注入(inject) Controller - angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345561/

相关文章:

javascript - 如何在 AngularJS 中绑定(bind)可变长度属性

javascript - Fastclick.js 与 AngularJS 集成

javascript - AngularJS 函数调用导致应用程序停止

javascript - 为什么即使使用自定义指令,Angular ng-cloak 也会覆盖我的 ng-show

javascript - AngularJS ngKeyUp 函数的值未定义

javascript - Angular js 中未定义 modalInstance

angularjs - 如何在angularJs中使用jqlite选择具有特定类名的子元素?

javascript - Alasql 未定义

javascript - 如何在 Angular 中用另一个对象过滤对象?

JavaScript/Angular : How to initialize a property from an array of the same object?