javascript - 将值传递到 $mdDialog Controller

标签 javascript angularjs

我正在尝试使用 $mdDialog 将值从 Controller 传递到服务。 var id 有值,但是当我转到 testService 时,该值不存在。

module.controller('viewTestController', function ($scope, $routeParams, $mdDialog, testService) {
var self = this;
self.$onInit = function () {
    self.test = function () {
        var id = $scope.$parent.key;
        console.log(id);

        $mdDialog.show(
             locals: { dataToPass: id },
             templateUrl: '/test.html',
             title: "Test",
             clickOutsideToClose: true,
             scope: $scope,
             preserveScope: true,
             controller: function ($scope) {

                 $scope.finalizeTest = function (dataToPass) {
                     testService.finalizeTest(dataToPass);
                     $mdDialog.cancel();
                 };
             }
         });
    };
} 
});

最佳答案

您必须将 locals 属性直接传递到 Controller 函数中,例如:

$mdDialog.show(
    locals: { dataToPass: id },
    templateUrl: '/test.html',
    title: "Test",
    clickOutsideToClose: true,
    scope: $scope,
    preserveScope: true,
    controller: function ($scope, $mdDialog, dataToPass) {
        $scope.finalizeTest = function () {
            testService.finalizeTest(dataToPass);
            $mdDialog.cancel();
        };
    }
});

关于javascript - 将值传递到 $mdDialog Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388823/

相关文章:

javascript - Angular :如何在单元测试中模拟扩展类

javascript - AngularJS 指令不起作用

javascript - AngularJS - 如何禁用 OPTION 请求?

javascript - angularjs ng-false-value 设置为空

javascript - AngularJS 加载个人用户配置文件

javascript - 自动完成多选字段,结果显示在下面的 div 中

javascript - 响应式问题 JQzoom

javascript - Visual Studio 中对 Ext Js 的 Intellisense 和 JsHint 支持

javascript - ngMaps : InvalidValueError: setPlace: not an Object

javascript - 使用 Javascript 的 getElementsByName 并使用 getElementById 输出结果