AngularJS,解析和未知提供者

2023-12-25

我有两条决心的路线。是这样的:

.when('/foos', {
templateUrl: 'views/foos.html',
controller: 'FoosCtrl',
resolve: {
    foo_list: ['$q', '$route', '$timeout', '$location', 'Foos', function($q, $route, $timeout, $location, Foos) {
        // postpone the execution
        var deferred_foo = $q.defer()

        Foos.getFoos({token:session_uid}, successCb)

        function successCb(list) {
            if(list['status'] === 200) {
                deferred_foo.resolve(list)
            }
            else {
                alert('Crashcrashcrash')
                deferred_foo.reject("Something just wasn't right")
                //$location.path('maintenance')
            }
        }
        return deferred_foo.promise
        }]
    }
})
.when('/r/:type/:bar_id', {
    templateUrl: 'views/bar.html',
    controller: 'BarsCtrl',
    resolve: {
        bar: ['$q', '$route', '$timeout', '$location', 'Bars', function($q, $route, $timeout, $location, Bars) {
            // postpone the execution
            var deferred = $q.defer()

            Bars.getBar({type: bar_type}, successCb)    

            function successCb(result) {
                if(result['status'] === 200) {
                    deferred.resolve(result)    
                }
                else {
                    alert('Crashcrashcrash')
                    deferred.reject("Something just wasn't right")
                    $location.path('foos')
                }

                return deferred.promise
                }]
            }
        })

然后我有两个控制器像这样工作:

 App.controller('FoosCtrl', ['$scope', '$location', 'Foos', 'foo_list', function($scope, $location, Foos, foo_list) {...}

 App.controller('BarsCtrl', ['$scope', '$routeParams', '$location', 'Bars', 'bar', 'sharedService', function($scope, $routeParams, $location, Bars, bar, sharedService) {...}

有人可以解释一下为什么 Bar 有效但 Foo 给了我Error: Unknown provider: foo_listProvider <- foo_list?我尝试过更换foo_list使用不同的名称,以防camelCasing 做了一些事情但没有帮助。


所以,这个问题与我自己的问题惊人地相似,我刚刚在 Angular IRC 频道的人们的帮助下找到了这个问题……你是否偶然设置了你的控制器?ng-controller? I had:

    <div ng-controller="myCtrl">

...当它应该被删除时:

    <div>

...因为我正在路由器上的解析中设置控制器。这就是我正在做的事情,也是造成这个问题的原因。您可以在这里查看更多内容:

https://stackoverflow.com/a/18305423/1306982 https://stackoverflow.com/a/18305423/1306982

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS,解析和未知提供者 的相关文章

随机推荐