0

我正在尝试在我的 ui-router 解析中使用工厂。我可以看到我的工厂名称被返回,但是这些方法似乎不存在:

路由器.js

define(['module', 'require'], function(module, require) {
    'use strict';

    var Router = function ($stateProvider, $urlRouterProvider) {

        $urlRouterProvider.otherwise('/shopping');

        var userFactory = require('./common/user/userFactory');

        $stateProvider
            .state('shopping', {
                url: '/shopping',
                templateUrl: 'app/shopping.html',
                resolve:{
                    "check":function(){
                        var something = userFactory;
                        console.log(userFactory.name);
                        console.log(userFcatory);
                    }
                }
            });
    };

    module.exports = ['$stateProvider', '$urlRouterProvider', Router];
});

当 console.log'ing 时:

console.log(userFactory.name);  //returns UserFactory
console.log(userFcatory);       //returns:

Object {name: "UserFactory", component: Array[4]}
    component:Array[4]
        0:"$q"
        1:"$http"
        2:"$state"
        3:($q, $http, $state)
        length:4
        __proto__:Array[0]
        name:"UserFactory"

但是我的getDatauseData方法似乎无法供我使用?

4

1 回答 1

0

通过将我的 router.js 更改为:

define(['module', 'require'], function(module, require) {
    'use strict';

    var Router = function ($stateProvider, $urlRouterProvider) {

        $urlRouterProvider.otherwise('/shopping');

        var userFactory = require('./common/user/userFactory');

        $stateProvider
            .state('shopping', {
                url: '/shopping',
                templateUrl: 'app/shopping.html',
                resolve:{
                    userFactory : 'UserFactory',
                    check:function(userFactory){
                        return userFactory.checkUser();
                    }
                }
            });
    };

    module.exports = ['$stateProvider', '$urlRouterProvider', Router];
});
于 2016-05-03T17:35:23.453 回答