Angularjs javascript模式
我正在用Angularjs做我的水疗项目。到目前为止,我正设法得到我想要的。尽管如此,我还是无法让情态动词起作用,我需要一个简单的解释。以下是有关我的项目结构的一些详细信息:Angularjs javascript模式,javascript,angularjs,Javascript,Angularjs,我正在用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 :(");
});
};