我正在使用模态
<modal title="Success" id='successmessage' visible="successmessage">
<form role="form">
Success ful result.
<button type="submit" class="btn btn-primary" ng-click="closesuccessmessage()" >Ok</button>
</form>
</modal>
我有关于模态的指令..
'use strict';
angular.module('abc.directives', [])
.directive('modal', function () {
return {
template: '<div class="modal fade">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>' +
'<h4 class="modal-title">{{ modalTitle }}</h4>' +
'</div>' +
'<div class="modal-body" ng-transclude></div>' +
'</div>' +
'</div>' +
'</div>',
restrict: 'E',
transclude: true,
replace:true,
scope:true,
link: function postLink(scope, element, attrs) {
scope.modalTitle = 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;
});
});
}
};
});
在我的角度控制器中,我创建了如下的功能
$scope.closesuccessmessage = function()
{
$scope.successmessage = false;
}
但它没有任何效果。我怎样才能让它发挥作用。因为从一个函数控制它是非常重要的。 Modal打开true值,但不会关闭false值。
答案 0 :(得分:2)
为了让angularjs绑定变量以查看期望表达式的属性之外,您必须使用括号。
<modal title="Success" id='successmessage' visible="{{successmessage}}">
<form role="form">
Success ful result.
<button type="submit" class="btn btn-primary" ng-click="closesuccessmessage()" >Ok</button>
</form>
</modal>
但是,我不确定HTML中的有效属性是否可见。如果要使用变量隐藏模态,可以使用ng-show并在控制器中设置成功消息变量
<modal title="Success" id='successmessage' ng-show="successmessage">
<form role="form">
Success ful result.
<button type="submit" class="btn btn-primary" ng-click="closesuccessmessage()" >Ok</button>
</form>
</modal>
答案 1 :(得分:1)
你不能像上面那样使用你正在做的事情。你应该调用模态hide
函数来隐藏模态。请尝试以下代码段
$scope.closesuccessmessage = function()
{
$("#successmessage").modal('hide');
}
修改强>
您不能在HTML中使用范围值。如果您的控制器相同,则可以轻松访问它。我改变了你的HTML。请尝试以下
<modal title="Success" id='successmessage' data-ng-show="successmessage">
代替
<modal title="Success" id='successmessage' visible="successmessage">