Hi.

I'm finally getting around to converting my old procedural code to
Prototype'd class based code. But I'm having an issue with resolving
"this".

Old code (heavily trimmed) ...

var o_Form = $('formID');
o_Form.request({
  b_Process = false,
  onSuccess : function() {
    this.b_Process = true;
  }
  onComplete : function() {
    doStuffA(); // Must be done before any successfull work.
    if (this.b_Process) {
      doStuffB(); // Must be done after doStuffA.
    }
  },
});
function doStuffA(){}
function doStuffB(){}

So, "this" in this instance represents the request object.

This code is in a standard.js file. There are then specific.js files
which provided additional functionality.

base_form_handler.js
specific_form_handler.js (relies on things in base_form_handler.js)

Now, in my new code, o_Form is property of a class and the old code is
now in a method called formSubmit (handled via an observe in the
initialize code [snipped]).

var class_AjaxFormHandler = Class.create({
  initialize : function(s_Form) {
    this.o_Form = $(s_Form);
    // Attach events next, etc.
  },
  formSubmit : function() {
    this.o_Form.request({
      b_Process = false,
      onSuccess : function() {
        this.b_Process = true; // OK as b_Process is part of the request object.
      }
      onComplete : function() {
        this.doStuffA(); // Not OK as doStuffA is part of the
request.parent.parent/request.owner.owner idea.
        if (this.b_Process) { // OK
          this.doStuffB(); // Not OK
        }
      }
    });
  doStuffA : function() {},
  doStuffB : funciton() {}
  }
});

This code is extended into a specific form...

var class_FleetAxleConfiguration = Class.create(class_AjaxFormHandler, {
  initialize : function($super) {
    $super.initialize('axleConfigs');
  }
});

o_class_FleetAxleConfiguration = new class_FleetAxleConfiguration();


The problem I'm having is how do I define which "this" is which? I'm
coming from PHP to JS, so I'm not really sure about this at all.

Effectively, "this".o_Form.request.parent.parent == "this" in my head
and that is what I want to use, but I don't know if parent or owner is
available to me?

Can anyone point me in the right direction?

Regards,

Richard Quadling.

-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to