1

バックボーンでアプリを作成しています。この現在のコードは機能しますが、サーバーからデータを取得したいと考えています。/myfriends/getData の私のメソッドは、友達の名前などの json を返します。このコードを作成して、サーバーからその json を取得するにはどうすればよいですか。少し調べてみると、彼らはルートなどを使用しています...アプリの1ページで使用する必要があるだけなので、多くのルーティングなどはしたくありません

ありがとう

$(function() {



FriendList = Backbone.Collection.extend({
    initialize: function(){
        this.bind("add", function( model ){
            alert("hey");
            view.render( model );
        })
    }
});

FriendView = Backbone.View.extend({

    tagName: 'li',

    events: {
        'click #add-input':  'getFriend',
    },

    initialize: function() {
        this.friendslist = new FriendList;
        _.bindAll(this, 'render');
    }, 

    getFriend: function() {
        var friend_name = $('#input').val();
        this.friendslist.add( {name: friend_name} );
    },

    render: function( model ) {
        $("#friends-list").append("<li>"+ model.get("name")+"</li>");
        console.log('rendered')
    },

});

var view = new FriendView({el: 'body'});
});

ここに作業コピーがあります

http://jsfiddle.net/thomas/Yqk5A/

ありがとう

疲れた

これは私がデータを表示しなければならないものであり、提案の後に試しましたが、まだ運がありません

$(function() {



FriendList = Backbone.Collection.extend({
    initialize: function(){
        this.bind("add", function( model ){
            alert("hey");
            view.render( model );
        })
    }
});

FriendsServer = new Backbone.Collection({

        initialize: function(){
            url : '/friends/Data',
            this.bind("test", function( model ){
                view.render( model );
            })
        }
});



FriendView = Backbone.View.extend({

    tagName: 'li',

    events: {
        'click #add-input':  'getFriend',
    },

    initialize: function() {
        this.friendslist = new FriendList;
        _.bindAll(this, 'render');
    }, 

    getFriend: function() {
        var friend_name = $('#input').val();
        this.friendslist.add( {name: friend_name} );
    },

    render: function( model ) {
        $("#friends-list").append("<li>"+ model.get("name")+"</li>");
        console.log('rendered')
    },

});



FriendsServerView = Backbone.View.extend({

        tagName: 'div',

        render: function( model ){
            $("#jsonData").html(FriendServer.fetch);
        }

    });

var view = new FriendView({el: 'body'});
var view = new FriendsServerView({el: 'body'});
});

in my html I have a div to populate with json data
4

1 に答える 1

3

コレクションの url プロパティを設定し、コレクションで .fetch() を呼び出して、サーバーからデータをロードするだけです。詳細情報:

http://backbonejs.org/#Collection-fetch

また、モデル/コレクション イベントをモデル/コレクションではなくビューにバインドします。

于 2012-10-03T20:19:18.393 に答える