2015-06-22 61 views
1

我有一个使用jQuery的,它记录的东西到控制台当鼠标越过锚元素的简单angularjs控制器:如何使用onmouseover将父状态控制器扩展为子状态?

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

我使用的UI路由器组织我的应用程序状态:

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> 

在她体内e通过状态插入一堆嵌套视图。这些视图有很多锚点元素,但鼠标移过它们时没有任何反应。为什么?不应该父状态控制器扩展到子状态?谢谢您的帮助!

回答

1

在父控制器中绑定到$ scope的数据可以在子状态中访问,因为如果我们访问子状态,父控制器将始终运行。 在菜单控制,如果写写

$scope.name = 'XYZ' 

这$ scope.name在使用$ scope.name每个孩子控制器访问。

编辑: 在你MenuController绑定在文档这种定位的这样,它会工作

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

所以问题是jQuery和没有棱角? jQuery的事件可以继承吗? – noviewpoint

+0

问题不在于角度js。我编辑了我的答案请检查这个 – Mohit

相关问题