Angularjs javascript modals
Angularjs javascript modals
我的SPA项目使用Angularjs。到目前为止,我正在设法得到我想要的。尽管如此,我还是没能让模式发挥作用,我需要一个简单的解释如何做到这一点
- 每个页面/视图都保存在一个单独的物理文件中(纯HTML)
- 对于每个页面/视图,都定义了一个控制器(同样,每个控制器都在自己的物理文件中)
- 我已经定义了一个路由提供程序,其中包括每个页面/视图的条目
打开模式对话框的触发可能发生在多个位置,其中一些位置打开同一个对话框,它可能来自于点击链接(类似<a>Click here</a>
)、按钮,或者只是截取输入字段上的点击。
我要补充的是,在介绍";成为";modals作为普通页面(即将它们添加到路由提供程序列表中),我可以正确地查看内容。
我的最后一次尝试是在这里效仿,但没有成功。
我需要的是:
- 我应该如何以及在哪里配置这些模态(看了很多例子,现在我完全迷路了)
- 我应该如何援引对话的陈述
以下是我的操作方法。假设您使用的是Angular ui引导模式。
首先,您需要一个"模态工厂"来包含模态的定义,这意味着它们将具有视图的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;
};
到目前为止,您已经有一个工厂创建了一个模态实例,并返回该模态实例的PROMISE。
第二,当然,您需要在适当的位置定义sampleView.html
和SelectionModalController
,并将其包含在项目中。请记住,如果要使用在定义模态实例时定义的sample
变量,则需要将其注入控制器。示例:
"use strict";
angular.module("sampleModule").controller("SelectionModalController", SelectionModalController);
SelectionModalController.$inject = ["sample"];
function SelectionModalController(myVariableNameForSample) {
};
第三,在您想要打开模态的控制器中,注入AppSharedModalFactory
,只需调用工厂函数并将您想要的变量传递给它,这当然是可选的,然后使用返回的promise来解决在模态关闭后要解决的任何问题,方法是关闭(这会导致已解决的promise)或驳回(这会造成拒绝的promise。示例:
$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 :(");
});
};
最后,您可以在html中执行<a href="" ng-click="openSelectionModal('Hello World!')">click to open modal!</a>
。
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- Angularjs javascript modals
- Javascript vs. Jquery: Initializing Modals.功能在JS中无法识别,但在jQue