我试图在一个已经存在的指令的基础上构建一个新的指令,但是在我的过程中我被停止了。在加载页面时,我面临以下错误:
多个指令directive#1,directive#2请求在
<easymodal title="Test-Title" text="Text-Text" oncancel="show = false" onok="alert();">上独立的作用域
基本指令如下所示:
Rohan.directive('easymodal', function () {
return {
restrict: 'E',
// priority: 200,
transclude: true,
replace: true,
scope:{
showModal: "=show",
callback: "=closeFunction",
dismissable: '&'
},
template:
'<div data-ng-show="showModal" class="modal-container">' +
'<div class="modal-body">' +
'<div class="title"><span data-translate></span><a data-ng-show="dismissable" data-ng-click="dismiss()">x</a></div>' +
'<div data-ng-transclude></div>' +
'</div>' +
'<div class="modal-backdrop" data-ng-click="dismiss()"></div>' +
'</div>'
};
});我的包装指令是这样的:
Rohan.directive('easydialog', function () {
return {
restrict: 'E',
transclude: true,
scope: {title: '@',
text: '@',
onOk: '&',
onCancel: '&'},
replace: true,
template:
'<easymodal>' +
'{{text}} ' +
'<hr>' +
'<button ng-click="{{onCancel}}" value="Cancel"' +
'<button ng-click="{{onOk}}" value="Ok"' +
'</easymodal>'
};
});我的html如下所示:
<easydialog title="Test-Title" text="Text-Text" onCancel="show = false" onOk="alert();" />起初,我认为我的title属性是矛盾的,所以我在html行和包装器指令中删除了这个属性,但是它没有效果。
发布于 2013-04-22 13:28:58
您需要更改easydialog模板并将<easymodal>包装在<div>中。
发布于 2013-09-12 22:21:16
您的问题只是在directive中添加一个directive参数,以及在实际的directive模板中添加一个名为<easydialog>的解析模板标记。你可以选择一个或另一个。
https://stackoverflow.com/questions/16148086
复制相似问题