3

我正在尝试使用 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

此外,在像这样的角度应用程序的初始引导过程中,登录模式控制器文件也会延迟加载 - >

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

为了解决此错误,我还应该检查哪些其他事项?

更新

在打开对话框后立即在对话框控制器中设置断点,我得到以下结果 -

调试

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

安慰

有什么建议么 ?

4

2 回答 2

0

由于我无法对死者的最新评论发表评论,因此这更多是对他如何识别/解决问题的后续行动。

尝试删除 md-dialog 标签中的 ng-controller。我认为这是因为当您调用 $mdDialog.show 时,您传入了提供程序,在这种情况下是本地人。但是,如果您在 md-dialog 标记中有 ng-controller,它会在没有本地上下文的情况下声明。

于 2017-09-05T18:31:11.590 回答
-1

I think the problem is you want to inject dialogLocals into your SignInModalController and then access the login_cookies as dialogLocals.login_cookies.

So change:

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

To:

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

Then access from your SignInModalController as:

dialogLocals.login_cookies
于 2016-12-19T18:12:26.607 回答