我是AngularJs的新手。我的MVC3应用程序中有2个控制器,带有相应的索引页面。
假设第一个控制器为LoginController
,另一个为DashboardController
。
每个索引页面都有不同的布局。如果登录成功,我想导航到DashboardController
index.cshtml页面。如何借助angularjs DashboardController
从当前LoginController
索引页面导航到$routeprovider
索引页?
app.js
angular.module('testModule', ['ngRoute'])
.controller('LoginController', function ($scope, $http, $location) {
$scope.Authenticate = function () {
$scope.Login.UserId = 2;
$scope.Login.RoleId = 501;
$scope.Login.AcctPassword = 'sss';
var postform = JSON.stringify($scope.Login);
if ($scope.Login.Username != '') {
$http.post('/Login/Authenticate', postform).success(function (data) {
if (data.Status == false) {
alert(data.errorMessage);
}
else {
$location.path("/Dashboard");
}
});
}
};
})
.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {templateUrl: '/Login/Index.cshtml',controller: 'LoginController' })
.when('/Temp', {templateUrl: '/Login/TempView.cshtml',controller: 'LoginController' })
.when('/Dashboard', { templateUrl: '/Dashboard/Listing', controller: 'DashboardController' })
.otherwise({ redirectTo: '/' });
$locationProvider.html5Mode(true); //Remove the '#' from URL.
} ]);
仪表板是我项目中的一个区域。列表是仪表板区域中的控制器,带有index.cshtml页面。
答案 0 :(得分:0)
我宁愿将$window
注入您的LoginController
。
然后,您可以在控制器中定义此方法:
$scope.go = function(path = "#/Dashboard/") {
return $window.location = path;
};
然后在模板中使用它:
<ANY ng-click="go()"/>
<ANY ng-click="go('#/Temp/')"/>