加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

动态地将资源注入控制器 – angularjs

发布时间:2020-12-17 17:30:37 所属栏目:安全 来源:网络整理
导读:这有效: 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 =
这有效:

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)转储已加载的实体.但是变量不会在模板中呈现.我猜测在使用vars填充$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');

控制器:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读