javascript - 如何将 onmouseover 的父状态 Controller 扩展到子状态?

标签 javascript jquery angularjs angular-ui-router states

我有一个简单的 angularjs Controller ,它使用 jquery,当鼠标移到 anchor 元素上时将某些内容记录到控制台:

app.controller('MenuController', function() {
    $("a").on('mouseover', function (e) {
        console.log("mouser over a link");
    });
});

我正在使用 ui-router 来组织我的应用程序状态:

app.config(["$urlRouterProvider", "$stateProvider", function($urlRouterProvider, $stateProvider) {

    // For any unmatched url, redirect
    $urlRouterProvider
        .otherwise("/");

    $stateProvider
        .state('menu', {
            controller: "MenuController",
            controllerAs: "menuCtrl",
            templateUrl: "partials/menu.html"
        })
            .state('menu.menu', {
                url: '/',
                templateUrl: "partials/menu.menu.html"
            })
            .state('menu.difficulty', {
                url: '/difficulty',
                templateUrl: "partials/menu.difficulty.html",
                controller: "DifficultyController",
                controllerAs: "difCtrl"
            })
            .state('menu.settings', {
                url: "/settings",
                templateUrl: "partials/menu.settings.html"
            })
}]);

我的菜单基本 html 位于 menu.html 文件中:

<!-- view - menu -->
<div ui-view>
    <!-- nested views -->
</div>

这里通过状态插入一堆嵌套 View 。这些 View 有很多 anchor 元素,但当鼠标滑过它们时什么也没有发生。为什么会这样?父状态 Controller 不应该扩展到子状态吗?感谢您的帮助!

最佳答案

父 Controller 中绑定(bind)到 $scope 的数据可以在子状态中访问,因为如果我们访问子状态,父 Controller 始终运行。 在菜单 Controller 中,如果写则写

$scope.name = 'XYZ'

这个 $scope.name 可以在每个子 Controller 中使用 $scope.name 访问。

编辑: 在您的 MenuController 中将此 anchor 绑定(bind)到文档上,如下所示,它将起作用

app.controller('MenuController', function() {
  $(document).on('mouseover','a', function (e) {
    console.log("mouser over a link");
  });
});

关于javascript - 如何将 onmouseover 的父状态 Controller 扩展到子状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977285/

相关文章:

javascript - 防止在 jQuery Mobile 上水平滚动

Javascript 将表存储在带有条件的变量中

javascript - Safari 添加 .html 以使用 epplus jquery.fileDownload.js 下载 xlsx

javascript - 我应该如何将数据从 JSON 获取到另一个 Angular js Controller ?

javascript - 为什么 AngularJS $scope 无法正常工作?

javascript - 动态添加时,第二个 Google map 无法正确呈现

javascript - 点击后退按钮刷新浏览器 JS

javascript - 如何根据 jQuery 中是否设置变量来创建数组

php - 在 Javascript 函数中使用 PHP

javascript - jquery shake 效果与 bootstrap 问题