Angularjs:如何在我的控制器中获取我的解析数据?

时间:2014-08-14 14:26:48

标签: angularjs controller state resolve

我有点困惑。我想在我的控制器中获取我的解析数据。我读到了这些(以及更多)解决方案,但无法使其正常工作。这完全是关于" spages"。

http://jsfiddle.net/Avb4U/1/

http://www.jvandemo.com/how-to-resolve-angularjs-resources-with-ui-router/#

Angularjs resolve with controller as string

我希望这不是一个重复的问题,因为这些解决方案对我没有任何帮助。

这是(所有州的一部分)我的州:

.state('root.search', {
    url: '/search/:searchterm',
    onEnter: ['$rootScope', function($rootScope) {
        $rootScope.bodyclass = 'search';
    }],

    resolve : {
        spages: ['$stateParams', 'SearchPages', function($stateParams, SearchPages) {
            return SearchPages.get({'searchterm': $stateParams.searchterm});
        }]
},
    controller: 'searchCtrl',
    views: {
        '@': {
              templateUrl: templateUrlFunction('search')
             }
    }

})

这是我的控制器的一部分:

app.controller('searchCtrl', ['$scope', 'spages', function($scope, spages) {
    // spages should be already resolved and injected here
}

这是我的搜索工厂:

app.factory('SearchPages', ['$resource', function($resource) {
    return $resource(null, {},
            {
                get: {
                    method: 'GET',
                    url: '/json/search/get/searchterm/:searchterm',
                    params: {searchterm: '@searchterm'}
                }
            });
}]);

如我所知,现在应该解决spage并将其注入控制器。但事实并非如此。

我得到的错误是:

Error: [$injector:unpr] Unknown provider: spagesProvider <- spages

我做错了什么?我还在学习......


好吧,我没有意识到我的模板中也有一个控制器。

我读了:&#34;你只需要在app.js中指定一次控制器。第二个,在html代码中,由ngController指令实例化,该指令不知道`resolve&#39;,因此它抛出异常。&#34;

1 个答案:

答案 0 :(得分:0)

将您的控制器依赖项从searchpages更改为SearchPages。

app.controller('searchCtrl', ['$scope', 'SearchPages', function($scope, searchpages) {
    // searchpages should be already resolved and injected here
}