Angularjs javascript模式

Angularjs javascript模式,javascript,angularjs,Javascript,Angularjs,我正在用Angularjs做我的水疗项目。到目前为止,我正设法得到我想要的。尽管如此,我还是无法让情态动词起作用,我需要一个简单的解释。以下是有关我的项目结构的一些详细信息: 每个页面/视图都保存在单独的物理文件(纯HTML)中 为每个页面/视图定义一个控制器(同样,每个控制器在其自己的物理文件中) 我已经定义了一个路由提供程序,其中包含每个页面/视图的条目 打开模式对话框的触发器可能发生在多个位置,其中一些位置打开相同的对话框,它可能来自单击链接(),但没有成功 我需要的是: 我应该如何以及在

我正在用Angularjs做我的水疗项目。到目前为止,我正设法得到我想要的。尽管如此,我还是无法让情态动词起作用,我需要一个简单的解释。以下是有关我的项目结构的一些详细信息:

  • 每个页面/视图都保存在单独的物理文件(纯HTML)中
  • 为每个页面/视图定义一个控制器(同样,每个控制器在其自己的物理文件中)
  • 我已经定义了一个路由提供程序,其中包含每个页面/视图的条目
  • 打开模式对话框的触发器可能发生在多个位置,其中一些位置打开相同的对话框,它可能来自单击链接(
    ),但没有成功

    我需要的是:

  • 我应该如何以及在哪里配置这些模态(看了很多例子,现在我完全不知道了)
  • 我应该如何调用对话的演示

  • 编辑:添加了最后一步

    我会这样做的,假设你使用情态动词

    首先,您需要一个“模态工厂”来包含模态的定义,这意味着它们将包含视图的url、控制器名称以及您可能要传递到控制器的任何变量。例如:

    "use strict";
    angular.module("sampleModule").factory("AppSharedModalFactory", AppSharedModalFactory);
    
    AppSharedModalFactory.$inject = ["$modal"];
    
    function AppSharedModalFactory($modal) {
        var factory = {};
        factory.openSelectionModal = openSelectionModal;
    
        function openSelectionModal (sampleVar) {
    
            var modalInstance = $modal.open({
                templateUrl:     "sampleRoot/sampleFolder/sampleView.html",
                controller: "SelectionModalController",
                size: "lg", // or other sizes, read the docs
                sample: { // resolve helps with passing variables into a controller when you instantiate it
                    module: function () {
                        return sampleVar;
                    }
                }
            });
    
            return modalInstance.result;
        };
        return factory;
    };
    
    到目前为止,已经有一个工厂创建了一个模态实例,并返回该模态实例的承诺

    其次,您当然需要在适当的位置定义
    sampleView.html
    SelectionModalController
    ,并将其包含在项目中。请记住,如果您希望在定义模态实例时使用定义的
    sample
    变量,则需要将其插入控制器中。示例:

    "use strict";
    angular.module("sampleModule").controller("SelectionModalController", SelectionModalController);
    
    SelectionModalController.$inject = ["sample"];
    
    function SelectionModalController(myVariableNameForSample) {
    };
    
    第三,在要打开模式的控制器中,注入
    AppSharedModalFactory
    ,只需调用factory函数并将想要的变量传递给它,这当然是可选的,然后使用返回的承诺在关闭模式后解析您想要解析的任何内容-这是可选的导致已解决的承诺或被驳回的承诺,从而导致被拒绝的承诺。 例如:


    最后,您可以在html中执行

    您的第一个调用端口应该在这里:,向下滚动“模式”指令。我终于让它工作了!!!你完全正确@SinaGh。我错过了调用控制器的正确注入。我真的非常感谢你的支持,并明显地将你的答案标记为正确。如果可以的话,再想想。我成功地“稍微”关闭了模式,但不是完全关闭。使用
    $(“#Generic_-Modal”).Modal('toggle');
    离开黑暗的背景,而序列
    $(“#Generic_-Modal').Modal('toggle');$('body').removeClass('Modal-open');$('Modal-background').remove();
    没有完全清洁屏幕(保留一个小的半透明水平条)。您能建议如何正确操作吗?(顺便说一句,我的测试是用Chrome进行的)。你的模态使用什么库?实际上,没有。我找到了,但不确定要包含哪个文件(即添加为)。在不知道你在使用什么代码的情况下,我如何帮你关闭模态^_^
        $scope.openSelectionModal = function (sample) {
            appSharedModalFactory.openSelectionModal(sample).then(function (result) {
        console.log("yay I got a successful return.");
        }, function () {
        console.log("My modal was dismissed :(");
        });
    };