【问题标题】:What is $event in Angular Material and do I need it with UI Router?Angular Material 中的 $event 是什么,UI 路由器需要它吗?
【发布时间】:2015-09-20 23:58:57
【问题描述】:

我也发现自己正在研究this unanswered question,但我也发现自己想知道找到答案是否重要?我搜索了$event 并查看了角度材料(至少是 API 文档左侧菜单中的项目)和材料文档,但没有找到任何参考。我只在 UI Router 文档中找到了对它的引用,表明它可以停止事件传播。

那么$event 是什么?为什么它被传递到$mdDialog?如果我使用ui-routeronEnter,我需要它吗?

【问题讨论】:

标签: javascript angularjs angular-ui-router angular-material


【解决方案1】:

直接来自docs:$event 对象是一个jQuery Event Object 的实例,当 jQuery 存在时或类似的 jqLit​​e 对象。

在angular-material的情况下,它用于引用dom事件对象,例如$mdDialog中使用click的事件对象

更新:

您必须将状态更改包装在 ng-click 事件中以获取 $event 对象并将该事件对象传递给 $state.go()

<div ng-app="myApp" ng-controller="myController">
    <a ng-click="show($event)">add campaign</a>
</div>

然后配置你的状态:

.state("campaigns.add", {
    url: "/add",
    resolve: {
        event: function($stateParams) {
            return $stateParams.event;
        }
    },
    onEnter: function($mdDialog, $state) {
        var ev = null;

        $mdDialog.show(
        $mdDialog.alert()
            .parent(angular.element(document.body))
            .title('This is an alert title')
            .content('You can specify some description text in here.')
            .ariaLabel('Alert Dialog Demo')
            .ok('Got it!')
            .targetEvent(event)).then(function() {
                $state.go('done');
            });
        }
    })

这是一个基于另一个问题的代码的工作演示:http://jsfiddle.net/f30wesj3/2/

【讨论】:

  • 但是使用ui路由器的时候需要通过吗?
猜你喜欢
  • 2016-10-17
  • 1970-01-01
  • 2015-01-25
  • 2018-04-04
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多