0

コンテンツを簡単に共有できるプロジェクトを作成しました。ここで私のプロジェクトを見ることができます: SharingProject

パスワードとして123456を指定してuser@example.comを使用し、確認済みユーザーとしてサイトをテストできます。もちろん、サイトにはまだいくつかのバグがあります...

流星ユーザーパッケージとバックボーンパッケージを使用して、ページ間を移動しました。ローカルホストでは、問題はありません。テストのために、プロジェクトを流星サーバーにアップロードしました。ログインしてページをナビゲートしている間、新しいページに移動するたびに、URLが変更されたため、アプリはクライアント側のユーザーを「チェック」します。これは迷惑です...

もちろん、Session.set('page_id'、..)を呼び出すだけでページをナビゲートできますが、私の目標は、サーバー上の特定のページへのURLをユーザーに送信できるようにすることです。

コードは、meteorページのtodosの例のコードに似ています。

Meteor.subscribe('pages', function () {
    if (!Session.get('page_id')) {
    var page = Pages.findOne({}, {sort: {owner: -1}});
    if (page)
      Router.setPage(page._id);
  }
});

...

var PagesRouter = Backbone.Router.extend({
  routes: {
    ":page_id": "main"
  },
  main: function (page_id) {
    Session.set("page_id", page_id);
  },
  setPage: function (page_id) {
    this.navigate(page_id, true);
  }
});

Router = new PagesRouter;

Meteor.startup(function () {
  Backbone.history.start({pushState: true});
});

ここで質問する理由:Webを検索しましたが、同じ問題を抱えている人を見つけることができません。それで、これまで誰もこれを試したことがないか、これに対する簡単な解決策がありますか?

編集:私がページを呼び出す方法

<template name="pages"> 
    {{#each pages}}
        <p><a href="/{{_id}}">{{title}}</a>
        {{#if isauthor}}
            <a class="delPage" href="javascript:delPage('{{_id}}')">delete</a>
        {{/if}}
        </p>
    {{/each}}
</template>
4

2 に答える 2

1

わかりました、変更して問題を解決しました(true)

Meteor.startup(function () {
  Backbone.history.start({pushState: true});
});

to(false)

Meteor.startup(function () {
  Backbone.history.start({pushState: false});
});

そしてもちろん、Mubixが提案したようなアンカーを追加します。ヒントをありがとう!上記のサイトで最新です。

今日はバックボーンのドキュメントに時間を費やしていますが、なぜこれが機能しているのか想像できません。特になぜだろうか

{hashChange: false}

ここでは動作しませんか?

于 2013-02-07T14:58:38.970 に答える
1

ページリンクをどのようにレンダリングしているかわかりませんが、次のようなリンクです:

http://pagesharingproject.meteor.com/a1fbacba-0ddf-4077-a653-294b428bbfb8

次のように読む必要があります:

http://pagesharingproject.meteor.com/#a1fbacba-0ddf-4077-a653-294b428bbfb8

于 2013-02-07T03:30:05.163 に答える