我正在使用角度材质$ mdPanel,我可以使用open()方法显示它但我无法将其删除(使用关闭按钮,如演示)。文档不清楚,close方法不起作用。对此有什么解决方案吗?
答案 0 :(得分:1)
当你致电$mdPanel.open()
时,它会返回一个承诺。对promise的调用包含对创建的面板的引用。你可以打电话给close()
。
$res = $mdPanel.open(...);
$res.then(function(ref) {
$scope.ref = ref;
})
稍后,要关闭,请致电:
$scope.ref.close();
答案 1 :(得分:0)
close()
上没有$mdPanel
方法,它是面板引用上的一个方法,它在第一个参数上传递给该面板的控制器。因此,为了能够关闭面板,您需要在面板定义中传递控制器功能,类似于下面的内容。
希望这有帮助!
var config = {
...,
controller: PanelController,
controllerAs: 'panelCtrl',
template: '<div><div>Some content</div><button ng-click="panelCtrl.close()">Close</button></div>',
...
};
function PanelController(panelRef) {
this.close = function () {
panelRef && panelRef.close();
};
}
答案 2 :(得分:0)
您可以在控制器中注入mdPanelRef
,然后拨打mdPanelRef.close()
var config = {
...,
controller: PanelController
};
function PanelController(mdPanelRef) {
this.close = function () {
mdPanelRef.close();
};
}