Angularjs AngularModalService:将数据传递给控制器

Angularjs AngularModalService:将数据传递给控制器,angularjs,modal-dialog,angular-ui-bootstrap,Angularjs,Modal Dialog,Angular Ui Bootstrap,在搜索中没有得到多少。我在这里找到了一条类似的线,但对我来说不太合适 实例表明,模态将得到一个单独的控制器。看起来像这样 var app = angular.module('myApp', ['ngSanitize','angularModalService']); app.controller('SampleController', ['$scope', function($scope) { $scope.showAlert = function() { Modal

在搜索中没有得到多少。我在这里找到了一条类似的线,但对我来说不太合适

实例表明,模态将得到一个单独的控制器。看起来像这样

var app = angular.module('myApp', ['ngSanitize','angularModalService']);
app.controller('SampleController', ['$scope', function($scope) {

    $scope.showAlert = function() {

        ModalService.showModal({
            templateUrl: "alertWindow.html",
            controller: "AlertController",
            inputs: {
                title: "Add New Alert",
            }
        }).then(function(modal) {
            modal.element.modal();
            modal.close.then(function(result) {
                $scope.result = "blah";
            });
        });

     });
}]);

app.controller('AlertController', ['$scope', function($scope) {

    $scope.close = function(result) {
        close(result, 500); 
    };
}]);

我需要注意的是,我希望模态对话框有一些默认值,它们在SampleController中。我读了很多关于服务的书,但我认为这在这里不起作用。输入:{}在showmodel()中看起来可疑,但我不确定在显示模式窗口后从何处获取它。我看到的其他示例只显示了简单的是/否按钮或文本输入,带有空的默认值。

根据文档,您将输入输入到模态控制器中。由于title是您上面提到的输入,因此您需要将模态控制器更改为:

app.controller('AlertController', ['$scope', 'title', function($scope, title) {
    $scope.title = title;

    $scope.close = function(result) {
        close(result, 500); 
    };
}]);

首先,看起来您有语法错误。定义控制器时缺少一个右方括号']'。另外,您的$scope.showAlert不在SampleController中。您说得对——谢谢您的提醒。编辑。然而,那正是我在窗口中编辑它以便于阅读的时候,因为控制器中发生的事情肯定比这里需要看到的要多。所以,我的问题仍然存在。至少代码现在应该更容易阅读了。您没有在SampleController中包含您的ModalService依赖项。你在任何地方都定义了ModalService吗?我有。很抱歉(再次编辑)。为了更直接地指出这个问题,我从中看到“输入:作为输入传递给控制器的一组值。提供的每个值都被注入控制器构造函数。”。只是不知道注射后如何引用它们。这很有效。谢谢很抱歉,我花了这么长时间才恢复。谢谢。它对我起了作用。把这个标题传还给SampleController怎么样?任何人都可以帮我。