0

私は今後の多くのAngularプロジェクトの1つでWordpressをバックボーンとして使用しています.Angularは初めてで、多くの時間を読んで学習しています。

この時点での私の問題は、ルーティングを機能させることができたのですが、何らかの理由でデフォルトの方法 (html5 モードなし) が機能しないことです。

リストがあります。リンクをクリックすると、パラメータ化された URL に移動する必要があり、このエラーが発生します

http://screencast.com/t/024t0Pl6

アプリ、サービス、およびコントローラー ファイルがあり、ここにコンテンツを投稿します。

app.js

angular.module('AngularWP', ['controllers', 'services', 'directives'])
.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        $routeProvider
            .when('/', {
                controller: 'ListController',
                templateUrl: 'templates/list.html'
            })
            .when('/view/:id', {
                controller: 'DetailController',
                templateUrl: 'templates/detail.html'
            })
            .otherwise({
                redirectTo: '/'
            });
    }
]);

services.js

    angular.module('services', [])
  .factory('getAllPosts', ['$http',
    function($http) {
      return {
        get: function(callback) {
          $http.get('/wordpress/api/get_recent_posts/').success(function(data) {
            // prepare data here
            callback(data);
          });
        }
      };
    }
  ])

controller.js

angular.module('controllers', [])
.controller('ListController', ['$scope', 'getAllPosts',
    function($scope, getAllPosts) {
        getAllPosts.get(function(data) {
            $scope.posts = data.posts;
        });
    }
])
.controller('DetailController', ['$scope', 'getAllPosts', '$routeParams',
    function($scope, getAllPosts, $routeParams) {
        getAllPosts.get(function(data) {
            console.log(data);
            for (var i = data.count - 1; i >= 0; i--) {
                //data.count[i]
                //console.log('post id is ' + data.posts[i].id);
                //console.log('routeparam is ' + $routeParams);
                if (data.posts[i].id == [$routeParams.id]) {
                    //console.log(data.posts[i]);
                    $scope.post = data.posts[i];
                }
            };
        });

        //$scope.orderProp = 'author';
    }
]);

何が問題なのですか?

4

2 に答える 2

1

どうやら、この問題の解決策は次のとおりでした。

<script>
      document.write('<base href="' + document.location + '" />');
    </script>

テンプレートで。Angular ルーターは、現在の URL に対して相対的です。

于 2013-08-10T17:17:46.967 に答える
0

同じ問題がありました。この問題は、1.0.7 に切り替えることで解決しました。

于 2013-08-15T14:39:50.197 に答える