AngularJS,解析和未知提供者

标签 angularjs

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

.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
                }]
            }
        })

然后我有两个 Controller 像这样工作:

 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 channel 的人们的帮助下发现了这个问题......你是否偶然设置了你的 Controller ng-controller ?我有:

    <div ng-controller="myCtrl">

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

    <div>

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

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

关于AngularJS,解析和未知提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846466/

相关文章:

angularjs - $从 v1.01 编译 :multidir on ng-switch-when after upgrading in AngularJS v1. 3

javascript - 为什么在 angularjs 指令链接函数中未定义双向绑定(bind)?

javascript - 如何将一个数组插入另一个数组?

javascript - 使用 Grunt 和 Node.js 构建 AngularJS UI-Grid 时遇到问题

javascript - 如何在特定索引处的 ui-grid 中添加新行

javascript - CSS Flexbox 显示问题

mysql - 在 AngularJS 和数据库之间保持唯一标识符同步的最佳方法是什么?

javascript - AngularJS - 分页不呈现在 $scope.Watch 变化(包括 CodePen)

javascript - Angular js : an arrray from one file to another

javascript - Angularjs 中的子字符串使用过滤器?