Angular Material md对话框locals给出未知的提供程序错误

时间:2016-10-21 07:05:47

标签: angularjs angular-material mddialog

我正在尝试使用md对话框服务传递一个变量,但它为md对话框服务提供了未知的提供程序错误

到目前为止我所尝试的内容如下 -

$mdDialog.show({
                controller: 'SignInModalController',
                templateUrl: 'views/partials/signin_modal.html',
                targetEvent: ev,
                size: 'sm',
                parent: angular.element(document.body),
                locals: {
                    "login_cookies": cookies
                }
            })

我正在尝试将此本地对象传递给具有以下代码的模式控制器中的登录 - >

app.controller('SignInModalController', ['$scope', '$stateParams', '$location', '$mdDialog', 'Auth', '$mdToast', 'login_cookies',
    function($scope, $stateParams, $location, $mdDialog, Auth, $mdToast, login_cookies) {

我在此之后在控制台中收到以下错误消息 - >

Error: [$injector:unpr] Unknown provider: login_cookiesProvider <- login_cookies <- SignInModalController
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=login_cookiesProvider%20%3C-%20login_cookies%20%3C-%20SignInModalController

此外,在角度应用程序的初始引导期间,模式控制器文件中的登录会延迟加载 - &gt;

.state('app', {
                        abstract: true,
                        url: '/app?feedback',
                        views: {
                            '': {
                                templateUrl: 'views/layout.html'
                            },
                            'aside': {
                                templateUrl: 'views/aside.html'
                            },
                            'content': {
                                templateUrl: 'views/content.html'
                            }
                        },
                        resolve: load([
                            'scripts/google_analytics.js',
                            'scripts/controllers/app/aside.js',
                            'scripts/controllers/app/navbar.js',
                            'scripts/controllers/app/reach_us.js',
                            'scripts/controllers/app/labs/filter.ctrl.js',
                            'scripts/controllers/app/signin_modal.js',
                            'scripts/controllers/app/feedback.js'])
                    })

我应该检查哪些其他内容才能解决此错误?

更新

一旦打开对话框,在对话框控制器中设置断点时,我得到以下结果 -

debug

正如您所看到的,传递的数组(list_cookies)确实有一个值,但在控制台中我收到此错误 -

console

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我认为问题是您要将dialogLocals注入SignInModalController,然后将login_cookies作为dialogLocals.login_cookies访问。

所以改变:

app.controller('SignInModalController', ['$scope', '$stateParams', '$location', '$mdDialog', 'Auth', '$mdToast', 'login_cookies', function($scope, $stateParams, $location, $mdDialog, Auth, $mdToast, login_cookies) {

要:

app.controller('SignInModalController', ['$scope', '$stateParams', '$location', '$mdDialog', 'Auth', '$mdToast', 'dialogLocals', function($scope, $stateParams, $location, $mdDialog, Auth, $mdToast, dialogLocals) {

然后从SignInModalController访问:

dialogLocals.login_cookies

答案 1 :(得分:0)

由于我无法对死人的最新评论发表评论,因此更多的是跟进他如何识别/解决问题。

尝试删除md-dialog标记中的ng-controller。我认为那是因为当你调用$ mdDialog.show时,你传递了提供者,在本例中是本地人。但是,如果在md-dialog标记中有ng-controller,则声明它没有本地的上下文。