angularjs - Angularjs 确认模式作为带有动作的指令
问题描述
我想创建 angularjs 指令 mydialog wihc 触发模态。一旦模型打开,我将有标题和内容,okcancel 并确认。一旦用户单击确认相应的操作,即保存应该触发。这里保存操作在 MainCtrl 中。如何触发。
HTML 指令:
<my-dialog newmodal="alertModel" ></my-dialog>
ConfirmationDailog.html 代码:
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" ng-click="$hide()">×</button>
<h4 class="modal-title">{{alertModel.Title}}</h4>
</div>
<div class="modal-body">
{{alertModel.Message}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="cancel()">Cancel</button>
<button type="button" class="btn btn-danger" ng-click="executeDialogAction(alertModel.action)">Confirm</button>
</div>
</div>
下面是JS部分:
var app = angular.module('plunker', ['ui.bootstrap']);
app.controller('MainCtrl', ['$scope', '$uibModal',
function ($scope,$uibModal) {
$scope.name = 'World';
var alertModel = {};
alertModel.Title = "My Title";
alertModel.Message = "The Conent";
alertModel.action= "save";
$scope.alertModel = alertModel;
$scope.save= function () {
alert('from outside');
}
}]);
我触发模型的对话指令
app.directive('myDialog', [
function () {
return {
scope: {
mymodal: '=newmodal',
},
template: "<button class='btn btn-danger' ng-lick='open(mymodal)'>Open Modal</button>",
controller: ModalController
};
}]);
function ModalController($uibModal, $log, $scope) {
$scope.animationsEnabled = true;
$scope.open = function (alertModel) {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'ConfirmationDailog.html',
controller: ModalInstanceCtrl,
scope:$scope,
resolve: {
test: function () {
return alertModel;
}
},
size: 'lg'
});
modalInstance.result.then(function (selectedItem) {
console.log("Confirmed: " + selectedItem);
$scope.selectedItem = selectedItem;
}, function () {
$log.info('modal dismissed at: ' + new Date());
});
};
}
function ModalInstanceCtrl($scope, $uibModalInstance, test) {
console.log('in');
$scope.alertModel = test;
$scope.cancel = function () {
$scope.$dismiss();
}
$scope.executeDialogAction = function (action) {
if (typeof $scope[action] === "function") {
$scope[action]();
}
};
}
解决方案
推荐阅读
- java - Spring MVC - 解析包含对象内映射的请求
- javascript - @babel/plugin-proposal-class-properties 不起作用
- angular - 不同离子平台的不同角度路由
- oracle - Oracle 多左外连接仅 max() 行
- javascript - nock 没有正确创建我的虚假请求
- c# - 如何更新实体框架中的元素列表?
- python - 如何以毫秒为单位计算 python 的“time.process_time()”的返回值
- python-3.x - 如何在 Python3.7 tkinter 中制作文本链接
- java - 添加 BouncyCastle Provider 会破坏 KeyStore.load()
- php - 通过php条件显示给定日期的所有数据