2013-11-12 3 views
0

Я пытаюсь понять, как это сделать.Как получить доступ к созданному объекту в функции

Я называю вид:

var loader = new LoadingView(); 

функция прилагается к этой точке зрения это создает новый объект «вертушку»

loader.showLoader() 

Что я теперь надеюсь, что это, что я могу назвать следующий функция, которая скрывает этот предметный счетчик

loader.hideLoader(); 

Однако hideLoader не имеет доступа к «spinner» obje кт.

Почему?

вид Код:

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'spinner', 
], function($, _, Backbone, Spinner){ 

    var LoadingView = Backbone.View.extend({ 
     el: '#loader', 
     // View constructor 
     initialize: function() { 
      this.opts = { 
       zIndex: 2e9, // The z-index (defaults to 2000000000) 
       top: '20', // Top position relative to parent in px 
       left: 'auto' // Left position relative to parent in px 
      }; 
      _.bindAll(this, 'showLoader', 'hideLoader'); 
     }, 


     showLoader: function() { 
     var spinner = new Spinner(this.opts).spin(this.el); 
    }, 

    hideLoader: function() { 
     var self = this; 
     console.log(self) 
     this.spinner.stop(); 
    } 

    }); // end loaderview 

return LoadingView; 
}); 

ответ

1

Это потому, что вы определили spinner в локальной области видимости, это просто переменная в локальной области showLoader и не привязана к контексту this как свойство, к которому вы пытаетесь получить доступ в hideLoader, поэтому попробуйте изменить его на

showLoader: function() { 
     this.spinner = new Spinner(this.opts).spin(this.el); //assuming spin returns the spinner object itself if not. do the below 
     //this.spinner = new Spinner(this.opts); 
     //this.spinner.spin(this.el);  
    }, 
+0

Я вижу, что имеет большое значение благодаря – Prometheus

+0

@Spike приветствуется. – PSL

1

Вы должны установить объект спиннера как свойство this:

showLoader: function() { 
    this.spinner = new Spinner(this.opts); 
    this.spinner.spin(this.el); // not sure if you can chain these calls 
}, 
Смежные вопросы