我正在尝试创建一个使用angularjs指令的自定义twitter引导模式弹出。我的问题是如何控制来自任何控制器的弹出窗口。
控制器指令是
var modal = angular.module('directiveModal', ['ngRoute','ngAnimate']);
modal.directive('loginModal', function() {
return {
restrict: 'EA',
templateUrl: 'directiveTemplate/modal.html',
link: function(scope,elem,attr)
{
elem.bind("click",function()
{
console.log("Opening Modal");
});
}
}
});这就是我如何从init页面调用指令。
var app = angular.module('myApp', ['ngRoute','ngAnimate','directiveModal']);
app.config(function($routeProvider)
{
$routeProvider
.when("/",{
templateUrl : "template/landing.html",
controller : "landingCtrl"
})
.when("/home",{
templateUrl : "template/home.html",
controller : "homeCtrl"
})
.when("/post",{
templateUrl : "template/post.html",
controller : "postCtrl"
})
.otherwise(
{
redirectTo: '/'
});
});如何控制html中的模式弹出,就像这样。
<div login-modal></div>我想根据我的需要定制这个模式。就像我想要控制显示什么文字一样。添加新元素,并在某些条件下调用此弹出/显示,控制器将满足这些条件。
发布于 2015-06-14 19:56:36
基本上,在您的指令中,您需要使用引导中的标准方法。类似于:
link: function postLink(scope, element, attrs) {
scope.title = attrs.title;
scope.$watch(attrs.visible, function(value){
if(value == true)
$(element).modal('show');
else
$(element).modal('hide');
});
$(element).on('shown.bs.modal', function(){
scope.$apply(function(){
scope.$parent[attrs.visible] = true;
});
});
$(element).on('hidden.bs.modal', function(){
scope.$apply(function(){
scope.$parent[attrs.visible] = false;
});
});正如您在$watch函数中看到的那样,您有了引导方法。我复制解决方案的最初答案可以在这里获得:Simple Angular Directive for Bootstrap Modal
https://stackoverflow.com/questions/30831404
复制相似问题