【问题标题】:Is it possible FAB actions to stay opened after click?点击后是否有可能 FAB 动作保持打开状态?
【发布时间】:2016-01-14 14:50:19
【问题描述】:

我正在尝试弄清楚这是否可能。

概念是需要让 FAB 动作在点击后保持打开状态。

他们需要的是我想要一个带有动作的经典 FAB 角材料 FAB 按钮。所以每一个被点击的动作按钮都会在它旁边打开一个弹出框来做一些事情,比如说一个简单的输入。

我这样做了,但是当我单击操作按钮时,操作按钮和弹出框消失了。

<md-fab-speed-dial md-trigger="click" md-direction="down" md-open="fab.isOpen"
            class="md-scale md-fab-top-right" ng-class="{ 'md-hover-full': fab.hover }"
                       >
            <md-fab-trigger>
                <md-button aria-label="menu" class="md-fab md-warn">
                    <i class="fa fa-plus"></i>
                </md-button>
            </md-fab-trigger>
            <md-fab-actions>
                <md-button aria-label="Create Data App" class="md-fab md-raised md-mini"
                     myapp-popover="app"
                     data-auto-close="true"
                     data-html="true"
                     data-placement="left"
                     data-animation="am-flip-x"
                     data-template-url="/templates/data-app/_v2/modules/popover-add-dataapp.html"
                     data-close-others="false"
                     data-prefix-event="url">
                  <i class="fa fa-database"></i>
                  <md-tooltip>Create Data App</md-tooltip>
                </md-button>
            </md-fab-actions>
        </md-fab-speed-dial>

我的范围很简单

$scope.fab = {
                isOpen : false,
                hover : false
            };

有什么想法吗?

【问题讨论】:

  • 这个和popover有关,不影响FAB

标签: javascript angularjs angular-material


【解决方案1】:

如果我理解正确,您希望在触发其中一项操作后保持快速拨号打开。您可以在操作按钮上使用ng-click,然后在点击事件上调用stopImmediatePropagation()

<md-fab-actions>
    <md-button ng-click="action($event)" aria-label="Create Data App" class="md-fab md-raised md-mini">
        <md-tooltip>Create Data App</md-tooltip>
    </md-button>
</md-fab-actions>

还有控制器功能:

$scope.action = function($event) {
    $event.stopImmediatePropagation();
    $window.alert('clicked');
};

codepen

【讨论】:

  • 呃,这太容易了。谢谢,我明天先测试一下,我会接受的;)
  • 好吧,我可以接受它。它不适用于我的代码,因为像这样使用它然后不会调用弹出框,但是如果可能的话,我可以通过函数调用指令。如果您有其他方法@kuhnroyal,那么请更新答案。谢谢!
  • 你应该可以在你的自定义指令中添加一个点击处理程序,但这很大程度上取决于你的指令,所以没有一些代码我不能说太多。
猜你喜欢
  • 1970-01-01
  • 2019-06-27
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
相关资源
最近更新 更多