0

バックボーン ビューで奇妙な動作が発生しています。ビュー テンプレートでイメージ タグがちらつき、ビューがレンダリングされるとすぐに消え、イメージが表示されません。これは私の最初の backbonejs/nodejs アプリケーションであり、かなりの時間をかけて試してみました。これをデバッグするには、私が十分に明確であることを願っています、ありがとう。

これが私のコードです:

//バックボーン ビュー

define(['text!templates/profile.html'],function(profileTemplate){

    var profileView=Backbone.View.extend({
        el:$('#content'),

        initialize:function(){
          this.model.bind('change',this.render,this);
        },

        viewTemplate: _.template(profileTemplate),

        render:function(){

            this.model.fetch();
            this.$el.html(this.viewTemplate(this.model.toJSON()));
        }
    });

return profileView;
});

//HTML テンプレート (profile.html)

 <img src="uploads/<%= photo%>" alt="image" />

//スキーマ

  var AccountSchema=new mongoose.Schema({
    email:{type:String,unique:true},
    password:{type:String},
    name:{
        first:{type:String},
        last:{type:String},
    },
    photo:{type:String},
  });

ディレクトリ構造

/ParentDirectory
  /Public
    /templates
      profile.html //this is the template being rendered
 /uploads //contains images

//ルーター

define(['views/profile'],function(ProfileView){

        var router=Backbone.Router.extend({

          currentView:null,

          routes:{
             "profile/:id":"profile"
          },

          //Calls render method on views
          changeView:function(view){
            if(null !=this.currentView){
                this.currentView.undelegateEvents();
            }
            this.currentView=view;
            this.currentView.render();
          },


          profile:function(id){
            var model=new Account({id:id});
            this.changeView(new ProfileView({model:model}));
          },

        return new router();
    });
4

1 に答える 1

0

コードにはいくつかの問題があります:

     initialize:function(){
      this.model.bind('change',this.render,this);
    },

    render:function(){
        this.model.fetch();
        this.$el.html(this.viewTemplate(this.model.toJSON()));
    }

render 関数内でモデルをフェッチしています (これは間違っているように感じます)。モデルが更新され、render を呼び出す変更イベントがトリガーされ、同じループが最初からやり直されます。

于 2013-07-01T16:44:46.313 に答える