我创建了一个名为modalDialog的指令,它基本上是一个模态对话框。它使用 transclude ,因此我稍后可以在我的代码中执行此操作:
<div modal-dialog id="dialog" dialog-title="This is my Dialog">
...
here goes the content of the dialog
</div>
我想在我的应用程序的不同位置使用此指令,并出于不同的目的。对话框的内容自然会有所不同,所以有一种方法可以将Controller传递给指令,就像我传递对话框标题或任何其他参数一样。
我想过将模态对话框包装在div中,并在其上设置控制器。像这样:
<div ng-controller="ThisInstanceController">
<div modal-dialog id="dialog" dialog-title="This is my Dialog">
...
here goes the content of the dialog
</div>
</div>
但我不太喜欢它。有更优雅的方式吗?
答案 0 :(得分:0)
看看Angular-UI模态。他们有一种非常优雅的使用模态的方式。简而言之,当模态打开时,您可以传递您想要初始化的控制器。
$scope.open = function () {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log('Modal dismissed at: ' + new Date());
});
};
好的部分是你可以通过控制器之间的解析传递数据。