我正在尝试弄清楚如何从我的 Angular Controller 中呈现引导模式对话框。基本上我拥有的是一张 table 。当用户单击表行时,我想显示一个模式对话框,其中包含有关所选行的详细信息。
我考虑解决这个问题的方法是让每个表行响应 ng-click。 ng-click 将调用 Controller 中的一个函数,该函数将呈现模式对话框并向其传递需要显示的数据。
我知道如何从 View 本身显示模式对话框,但我不确定如何从 Controller 触发模式。有什么想法吗?
View Controller 具有以下函数,当用户选择一行来查看模式对话框时将调用该函数。
$scope.rowClicked = function(rowID){
$scope.dataForModal = Data.get(rowID, function(err,data){
//Here is where I'd like to display the modal dialog in the view
});
}
最佳答案
参见http://angular-ui.github.io/bootstrap/#/modal
在 View 中的单元格/行上使用ng-click="showDetails(item)"
。然后在 Controller 中使用此代码来显示模态:
$scope.showDetails = function (item) {
var modalInstance = $modal.open({
templateUrl: 'yourview.html',
controller: 'DetailModalController',
resolve: {
item: function () {
return item;
},
}
});
modalInstance.result.then(function (item) {
// ok
}, function () {
// dismiss
});
};
你的模态 Controller 可以是这样的:
angular.module('app').controller('DetailModalController', [
'$scope', '$modalInstance', 'item',
function ($scope, $modalInstance, item) {
$scope.item = item;
$scope.dismiss = function () {
$modalInstance.dismiss();
};
$scope.close = function () {
$modalInstance.close($scope.item);
};
};
}]);
使用 $modalInstance.close($scope.item);
您可以传递一个对象。使用 $modalInstance.dismiss();
您可以在没有对象的情况下关闭模式。
关于angularjs - 从 Angular Controller 显示引导模态对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798267/