2

バックボーンにアプリがあります。このアプリでは、サーバーに保存されている json をフェッチします。何らかの理由で、ファイルからではなく、PHP から渡された配列 (Json と同じ構造) から json をフェッチしたくありません。コードを変更して同じことを行うにはどうすればよいですか? これは私のアプリです

var CombinationView = Backbone.View.extend({ 
    template: _.template($("#hotel-list-template").html()),
    initialize: function(){ 
        this.list = new HotelCollection([], { 
            url: 'includes/list.json' 
        }); 

        this.list.on("sync", this.listLoaded, this); 

        this.list.fetch(); 
    }, 
    render: function(){ 
        this.$el.html('Loading...'); 
        return this; 
    }, 
    listLoaded: function(){ 
        //code
    }
});

私がphpに保存したvarは$list_object

URL ではなくオブジェクトを取得するようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

2

JavaScript から PHP 変数にアクセスすることはできません。いくつかの情報を取得した後、php 側はすでにその仕事を終えています。あなたがやろうとしていることは何でもする2つの方法があります。

コレクションを作成します: http://backbonejs.org/#Collection

コレクションは、オブジェクトのリストを JSON として取得します。その後、各オブジェクトは Model クラスに渡されます。このようにして、オブジェクトのリストを取得し、このリストから新しいモデルを作成できます。モデルは同期を使用してフェッチされないためです。changeイベントをトリガーする必要があります。

他にできることは、特定のオブジェクトをフェッチすることです。オブジェクトを指定すると、ID が php サーバーに送信されます。この ID を使用すると、リスト内の特定の要素を読み込み、JSON として解析できます。

繰り返しになりますが、JS からは、サーバーまたはストリームからのみファイルを取得できます。Websocket は、javascript で長寿命の全二重ソケットを取得する唯一の方法です。

于 2013-07-04T16:04:54.680 に答える