ng-init具有工厂对象的控制器

时间:2014-04-26 11:30:13

标签: angularjs

我有像

这样的工厂方法
angular.module('mctAppServices', ['ngResource'])
    .factory('Users', function($resource) {
        return $resource('/MY/system/users');
    })
    .factory('Groups', function($resource) {
        return $resource('/MY/system/users');
    });

如何为不同的方法初始化控制器,如

<div ng-init="myObj: Users">
    <div ng-controller="GenrlCtrl">
     ...
    </div>
</div>

然后在我的控制器工厂方法中我正在尝试这样的事情

function GenrlCtrl($scope) {
    //here $scope.myObj is undefined
}

1 个答案:

答案 0 :(得分:1)

访问服务与ng-init无关,ng-init很少使用。 AngularJS具有dependency injection机制。在函数签名中声明服务名称,然后就可以访问它了。

在您的情况下,控制器可以这样写:

function GenrlCtrl($scope, Users, Groups) {
    $scope.factoryMethod = User.query();
}

虽然HTML可以简化为:

<div ng-controller="GenrlCtrl">
 ...
</div>

顺便说一下,这是一个显示如何使用$ resource的short video