简体   繁体   English

AngularJS SPA详细页面刷新

[英]Angularjs SPA detail page refresh

I am working on SPA application using Angularjs, all navigation within the app works fine, but when I try refresh detail page (examle: www.domain.com/traveldetail/123), it brakes the page. 我正在使用Angularjs开发SPA应用程序,该应用程序中的所有导航都工作正常,但是当我尝试刷新详细信息页面(例如:www.domain.com/traveldetail/123)时,它会使页面刹车。

app.js app.js

travelApp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $urlRouterProvider.otherwise("travellist");
    $stateProvider
      .state('/', {
          url: '/',
          templateUrl: 'Partials/travellist.html',
          controller: 'TravelListController'
      })
      .state('travellist', {
          url: '/travellist',
          templateUrl: 'Partials/travellist.html',
          controller: 'TravelListController'
      })
      .state('traveldetail', {
          url: '/traveldetail/:travelId',
          templateUrl: 'Partials/traveldetail.html',
          controller: 'TravelDetailController'
      })
}])

Web.config Web.config

    <rewrite>
      <rules>
        <rule name="TravelList" stopProcessing="true">
          <match url="^travellist" />
          <action type="Rewrite" url="/" />
        </rule>
        <rule name="TravelDetail" stopProcessing="true">
          <match url="^traveldetail" />
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>

WeApiConfig.cs WeApiConfig.cs

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            //routeTemplate: "api/{controller}/{id}",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

Here the state should be parent and child, for ex 这里的州应该是父母和孩子,例如

travelApp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise("travellist");
$stateProvider
  .state('travel', {
      url: '/',
      templateUrl: 'Partials/travellist.html',
      controller: 'TravelListController'
  })
  .state('travel.list', {
      url: '/travellist',
      templateUrl: 'Partials/travellist.html',
      controller: 'TravelListController'
  })
  .state('travel.list.detail', {
      url: '/traveldetail/:travelId',
      templateUrl: 'Partials/traveldetail.html',
      controller: 'TravelDetailController'
  })

}]) }])

you can refer to ui router 你可以参考ui路由器

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM