Sono in procinto di leggere Code Complete 2 e ho imparato che usare lo stato globale è un no-no. Cosa posso fare per evitare di utilizzare lo stato globale in questa situazione?
Alcune informazioni di base: ho due metodi diversi ( formAdded
e formRemoved
), ognuno dei quali viene chiamato a seconda che si faccia clic su un pulsante Aggiungi o si fa clic su un pulsante Rimuovi. timesSignerIsRequired
è una variabile di classe, e questi due metodi sono legati insieme da esso, il che sembra sbagliato. Ecco il mio codice.
formAdded: function(ev) {
var formId = $(ev.currentTarget).data('formid');
var self = this;
var forms = Forms;
$.each(forms, function(index, form) {
if (form.id == formId) {
//found this form - now find all signer ID's required with the current accountTypeId
var requiredSigners = form[this.appModel.get('accountTypeId')];
for (var i = 0; i < requiredSigners; i++) {
self.timesSignerIsRequired[i] += 1;
if (!signerIsRendered(i)) {
//render signer into view
}
}
}
});
}
formRemoved: function(ev) {
var formId = $(ev.currentTarget).data('formid');
var self = this;
var forms = Forms;
$.each(forms, function(index, form) {
if (form.id == formId) {
//found this form - now find all signer ID's required with the current accountTypeId
var requiredSigners = form[self.appModel.get('accountTypeId')];
for (var i = 0; i < requiredSigners; i++) {
self.timesSignerIsRequired[i] -= 1;
if (self.timesSignerIsRequired[i] <= 0) {
//remove signer from the view
}
}
}
});
}
Qualche suggerimento?