2013-11-26 22 views
0

我目前有一個現有的ASP MVC4應用程序,它從控制器返回視圖(剃鬚刀),並希望使用web api和angular js將應用程序轉換爲SPA(單頁應用程序)。我的問題是,我可以慢慢開始轉換特定的視圖/網址通過角度路由,並讓其他視圖/網址回調到渲染剃鬚刀視圖的MVC應用程序中的遺留控制器?例如,我有我的主角度js文件載明下列將AngularJS 1.2集成到現有的MVC站點中

window.EcentralSPA = angular.module('EcentralSPA', ['ngRoute']); 

EcentralSPA.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider.when('/users', { 
    templateUrl: 'app/views/users.html', 
    controller: 'UsersController' 
    }); 
}]); 


EcentralSPA.controller('UsersController', ['$scope', function ($scope) { 
    //TODO 
}]); 

基本上我只是想用戶的網址,獲取通過角和URL的其餘部分回調到Web服務器正確處理的/ mvc控制器並渲染剃刀視圖。然而,對於我目前的配置,除了/ users之外的任何其他調用都會返回空數據。有什麼建議麼?謝謝。

回答

1

如果您決定應用程序的一部分是SPA,而另一個不適用於某個網址,則需要停止AngularJS攔截URL更改。對於這個在渲染<a>標籤使用下列方式之一忽略angularjs路由包含目標元素

  • 鏈接。例如:<a href="/ext/link?a=b" target="_self">link</a>
  • 轉到不同域的絕對鏈接。示例:<a href="http://angularjs.org/">link</a>
  • 以'/'開頭的鏈接在定義基數時會導致不同的基路徑。示例:<a href="/not-my-base/link">link</a>

有關更多詳細信息,請參閱location documentation

此外,我不認爲你可以執行導航使用$route$location服務您想要處理angularjs以外的網址。

整頁刷新將始終導致整個框架重新加載所有AngularJS SPA頁面。