我有一个小应用程序,显示包含一些事件的日历。
当我点击其中一个活动时,我想在日历下方显示选择的详细信息。
事件的网址是在这样的循环中生成的:
'url': '#/concerts/' + data[idx].id
我的配置如下:
var app = angular.module('EventsApp', ['ngRoute']);
app.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$routeProvider.
when('/concerts/:eventId', {
templateUrl: '/Views/Home/ng-view/details.html',
controller: 'EventCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);
我的Index.cshtml:
<div id="bodyApp" ng-app="EventsApp">
<div class="mainBody" ng-controller="EventCtrl as event" ng-init="event.getAllConcerts()">
<div class="search">
<input type="search" />
</div>
<div class="calendar">
<div id="calendar">
</div>
</div>
<div class="crudSection" ng-view>
</div>
</div>
目前我只想让details.html显示,但它没有重定向。该网址已使用正确的网址进行更新,但我的视图未刷新。
此外,如果不暴露'/ api / {controller} / {id}'信息,routeProvider如何配置进行webapi调用?
编辑:我尝试使用标准MVC路线'/ Home / {action}和部分视图并且它有效,但不是'/ Home / {action} / {id}',所以我想我错过了关于如何结合两种路线的事情。
答案 0 :(得分:0)
我在以下链接中找到了解决方案:
AngularJS - How to use $routeParams in generating the templateUrl?
app.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$routeProvider.
when('/concerts/:eventId', {
templateUrl: function (params) { return '/Home/Details/' + params.eventId; },
controller: 'EventCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);