0

私は自分のウェブサイトに簡単なブログ セクションを作成しているので、投稿テンプレートに動的にリンクする、posts という名前の名前空間が必要です。これらの投稿にはそれぞれ独自のテンプレート (つまり posts/some_post.html ) があります。これは、json データを使用して一般的なテンプレートを設定するにはあまりにも異なるためです。

本番環境で投稿できるように、各投稿へのリンクを作成できる名前空間が必要です: mysite/posts/my_new_post. ただし、投稿を .state URL の先頭に追加すると、モジュールのインスタンス化に失敗するというエラーが発生します。

これは、作業コードのスニペットです。

.config(["$urlRouterProvider", "$stateProvider","$locationProvider", function ($urlRouterProvider, $stateProvider,$locationProvider){

$urlRouterProvider.otherwise('/');

$locationProvider.html5Mode(true);

$stateProvider

  .state('posts', {
    url: '/:postID',
    templateUrl : function($stateParams){
      return 'templates/posts/' + $stateParams.postID + '.html';
    },
  });


}]);

このコードは機能し、生成された URI にリンクできます。このリンクをクリックすると:

li><a ui-sref="posts({postID: 'blog2'})">blog 2</a></li>

URI は website/blog2 になり、website/home から URI にリンクできます

ただし、名前空間を追加しようとすると失敗します。

.state('posts', {
    url: '/posts/:postID',  // note i added posts before the id
    templateUrl : function($stateParams){
      return 'templates/posts/' + $stateParams.postID + '.html';
 },

リンクは初めて動作し、正しいページに連れて行ってください。ただし、URIパターンmySite/posts/blog1を入力すると、:[$ injector:modulerr]エラー、およびこの奇妙なsyntaxerror:予期しないトークン<

どういうわけか角度をロードしていません。誰もアイデアを持っていませんか?

4

1 に答える 1