2016-01-20 83 views
0

我有一个复杂的MVC项目,我们正在增加一些Angular功能。我对Angular非常陌生,现在在Pluralsight上观看三个Angular课程。他们一直很有帮助,但我错过了一些理解。超链接与角路由/ MVC区域不工作

据我所知,我需要只有一个ng-app(除非我想引导,我不认为我想)。所以这个应用程序已经定义了我的配置和自定义指令。自定义指令很好地工作,但当我点击该指令中的链接时,它不会去任何地方....也许它确实但不是我所期望的。提琴手显示没有异常像404或500错误。

(function() 
{ 
    "use-strict"; 


    angular.module("appMainNav", ["ngRoute"]) 
    .config(function ($routeProvider) { 

    $routeProvider.when("/MySearch", { 
     controller: "routingController" 
    }); 

    $routeProvider.otherwise({ redirectTo: "/" }); 

}) 

})(); 

我routingController:作为渲染

(function() { 

    "use strict"; 

    angular.module("appMainNav") 
    .controller("routingController", routingController); 

function routingController($http) { 

    var vm = this; 

    alert("Routed"); 
} 
})(); 

我的HTML链接:

<a href="#/MySearch">Search</a> 

我没有得到一个页面没有找到,网址只是追加#/ MYSEARCH 。没有控制台错误等

我期待得到一个JavaScript警报...?

TIA


编辑

应该早点加入。下面是标记:

_layout页:

<body> 
    <div ng-app="appMainNav" ng-controller="routingController" class="container"> 
     @RenderBody() 
    </div> 
</body> 

RenderBody是Index.cshtml:

<div class="row"> 
<div> 
    Header Stuff 
</div> 
</div> 

<div class="row"> 

<div class="col-md-2"> 
    <dashboard-main-nav></dashboard-main-nav> 
</div> 

<div class="col-md-3"> 
    <div></div> 
</div> 

<div class="col-md-8"> 
    <div></div> 
</div> 

</div> 

<div class="row"> 
<div> 
    Footer Stuff 
</div> 
</div> 

自定义指令角码被排除在外的剪刀的上述然而这正是该链接产生。

+0

您可以发布所有标记,包括您使用'ng-controller'的部分吗? – frishi

+0

呃......我不是在任何地方叫出控制器。 (捂脸)。我添加它,并加载它给javascript提醒,但不是当我点击链接。请参阅编辑OP – GPGVM

回答

1

您需要一个事件处理程序分配给锚标记上的点击事件:

<a href="#/MySearch" ng-click="foo()">Search</a>

其中foo是控制器的范围内定义的函数:

function routingController($http, $scope) { 

    var vm = this; 
    $scope.foo = function(){ 
     alert("I am so tired"); 
    } 

    alert("Routed"); 
} 

尝试这一点,它应该工作。

+0

@frishi ...即使在你困倦时,你也比我更好。这就是thx。 – GPGVM

+0

哈哈!干杯!很高兴它的工作。 – frishi