programing

angular.js에서 HTML5 푸시 스테이트 사용

telebox 2023. 3. 8. 21:03
반응형

angular.js에서 HTML5 푸시 스테이트 사용

Angularjs에서 사용하는 # 네비게이션 대신 html5의 pushstate를 구현하려고 합니다.구글에서 답을 검색해봤고 앵글 irc 채팅방도 시도해봤지만 아직 잘 되지 않았다.

이건 내 거야controllers.js:

function PhoneListCtrl($scope, $http) {
    $http.get('phones/phones.json').success(function(data) {
        $scope.phones = data;
    });
}

function PhoneDetailCtrl($scope, $routeParams) {
  $scope.phoneId = $routeParams.phoneId;
}

function greetCntr($scope, $window) {
    $scope.greet = function() {
    $("#modal").slideDown();
    }
}

app.module

angular.module('phoneapp', []).
    config(['$routeProvider', function($routeProvider){
        $routeProvider.
            when('/phones', {
                templateUrl: 'partials/phone-list.html',
                controller: PhoneListCtrl
            }).
            when('/phones/:phoneId', {
                templateUrl: 'partials/phone-detail.html',
                controller: PhoneDetailCtrl
            }).
            otherwise({
                redirectTo: '/phones'
            });
    }])

설정에 $locationProvider를 삽입하고$locationProvider.html5Mode(true).

http://docs.angularjs.org/api/ng.$locationProvider

간단한 예:

JS:

myApp.config(function($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider
    .when('/page1', { template: 'page1.html', controller: 'Page1Ctrl' })
    .when('/page2', { template: 'page2.html', controller: 'Page2Ctrl' })
});

HTML:

<a href="/page1">Page 1</a> | <a href="/page2">Page 2</a>

언급URL : https://stackoverflow.com/questions/11095179/using-html5-pushstate-on-angular-js

반응형