我試圖在已經存在的MVC 3網站中使用Angular。我已經獲得了我的主要ngApp與第一個加載的項目的工作,但只要我添加一個模塊並嘗試實施$routeParams
看起來,路由提供商開始分解。在我的MVC 3應用程序中,我有一個有效的路由/Article/ReadArticle/key
路由,它允許密鑰爲空,並且我有相應的Controller/Action來提供所請求的文章。如果key
爲空或空,則它提供最新輸入的文章。我有另一個後置操作,除了返回一個JsonResult
而不是一個視圖之外,它的功能相同。角度路線不符合Asp.Net MVC 3
我修改了我的視圖,排除了任何MVC構造的模型,因此該動作只是簡單地返回本質上具有所有角度模板的html頁面。角度控制器調用JsonResult的後置動作,並且都是桃色的。我說根據樣本路由角模塊,但由於某些原因,它似乎並沒有被追趕的路線:
'use strict';
/* App Module */
angular.module('je', []).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/Article/ReadArticle/:key', { templateUrl: '/Angular/ArticleView.html', controller: ArticleCtrl }) //.
//otherwise({ templateUrl: '/Angular/ArticleView.html', controller: ArticleCtrl });
} ]);
我註釋掉otherwise
電話。如果我把它留在那裏,它可以工作,但只能帶上默認文章。手動輸入有效路線(如/Article/ReadArticle/Some_Valid_Key
)不會產生任何合適的$routeParams
。註釋出來,沒有路線匹配,所以沒有模板加載,頁面是空白的。
function ArticleCtrl($scope, $routeParams, $http) {
console.log($routeParams.key);
$http.post("/Article/GetArticleText", { "textkey": $routeParams.key }).success(function (data) {
console.log(data);
$scope.article = data;
}).
error(function (data, status) {
console.log(data);
console.log("Request failed");
console.log(status);
});
}
按照試樣,我的期望是$routeParams.key
應該Some_Valid_Key
在這一點進行填充。顯然,我的期望不符合現實,但我錯過了什麼讓路線行爲?
當我將Microsoft MVC排除在等式之外時,該路線起作用。將角度路由調整爲「繞過」MVC路由只會導致MVC路由問題。 MVC路由和角度路由之間似乎有衝突。 –
似乎角度路由和查看結果是不兼容的。我開始認爲唯一可能的行動方式是不使用viewresults,而只是使用jsonresults。如果有人已成功使用viewresult和angularjs,請分享您的經驗。謝謝! –
當你開始使用JavaScript MVC時,viewResults和viewcontrollers幾乎沒有什麼意義,除了解析相同的Index.html/aspx的單個視圖控制器或最終調用主文件。 (IMO) – Jens