1

私は Meteor アプリに取り組んでおり、Backbone のルーティング機能を使用してマルチページ機能を追加したいと考えています。ただし、これを行うと:

meteor add backbone
meteor add underscore

次に、アプリ内で単純な「hello World」を作成しようとすると、次のメッセージでクラッシュします。

ReferenceError: Backbone is not defined
at app/backbone.js:33:2
at run (/Users/timj/Documents/backbone/.meteor/local/build/server/server.js:142:63)
at Array.forEach (native)
at Function._.each._.forEach (/usr/local/meteor/lib/node_modules/underscore/underscore.js:79:11)
at run (/Users/timothyjaeger/Documents/backbone/.meteor/local/build/server/server.js:142:7)
Exited with code: 1

バックボーンを流星アプリに追加したので、何が間違っているのかわかりません! js は次のようになります。

backbone-test-app.js

if (Meteor.isClient) {

      var AppView = Backbone.View.extend({
      // el - stands for element. Every view has a element associate in with HTML content will be rendered.
      el: '#container',
      // It's the first function called when this view it's instantiated.
      initialize: function(){
        this.render();
      },
      // $el - it's a cached jQuery object (el), in which you can use jQuery functions to push content. Like the Hello World in this case.
      render: function(){
        this.$el.html("Hello World");
      }
    }); 

var appView = new AppView();
}

    if (Meteor.isServer) {
  Meteor.startup(function () {
    Backbone.history.start({pushState: true});
        // code to run on server at startup
      });
    }
4

1 に答える 1

0

バックボーンはクライアント側のフレームワークです。if (Meteor.isServer) {..}バックボーン関連のコードを から削除して に配置するだけで、コードをクライアント側に移動する必要がありますif (Meteor.isClient) {..}

if (Meteor.isServer) {..}またはを使用する必要のないコードを分割するためにクライアントとサーバー フォルダーを使用する場合はif (Meteor.isClient) {..}、バックボーン関連のコードをクライアント フォルダーに配置するだけで済みます。

todos アプリはバックボーンを使用していると思いますが、クライアント側での使用方法に関するこの質問を見ていない場合:

Meteor で動的 URL を作成するにはどうすればよいですか?

また、ページ間のルーティングの素晴らしい仕事をする meteor と呼ばれるパッケージもありmeteor-routerます。これは、ニーズにより快適に適合する場合もあります。詳細については、次を参照してください。

https://github.com/tmeasday/meteor-router

于 2013-01-12T22:08:07.773 に答える