Sto riscontrando un comportamento strano quando i dati collegano un oggetto a un modulo che mi ha portato a ri-interrogare su cosa esattamente si stanno vincolando i dati?JsViews come rendere possibile l'associazione dei dati sull'oggetto radice e le sue proprietà nidificate?
Fondamentalmente ho un modulo che crea nuove società e le aggiorna. L'effettiva creazione/aggiornamento avviene tramite ajax, motivo per cui sto utilizzando lo stesso modulo per entrambi gli scopi. Nel caso in cui devo creare un'azienda, tutto funziona come mi aspetto. Tuttavia, quando devo aggiornare un'azienda, le cose non funzionano come mi aspetto che facciano. Si prega di dare un'occhiata al seguente codice.
Ecco il mio modulo di esempio HTML:
<div id="result"></div>
<script type="text/x-jsrender" id="CompanyFormTemplate">
<form>
<input type="text" data-link="Company.Name" />
</form>
</script>
Ecco il mio codice Javascript:
var app = new CompanyFormContext();
function CompanyFormContext() {
this.Company = {
Name: ''
};
this.setCompany = function (company) {
if (company) {
$.observable(this).setProperty('Company', company);
}
};
};
$(function() {
initPage();
...
if (...) {
// we need to update company information
app.setCompany({ Name: 'Company ABC' });
}
});
function initPage() {
var template = $.templates('#CompanyFormTemplate');
template.link("#result", app);
}
Al posto del modulo di input che mostra 'azienda ABC', è vuota. Tuttavia se inserisco qualcosa in esso, il valore di Company.Name cambia! Ma mentre voglio che l'input ai dati si leghi alla proprietà Name dell'oggetto della mia azienda, voglio anche che sia a conoscenza di eventuali modifiche apportate all'oggetto aziendale (padre) e aggiorni il suo binding ai dati della sua proprietà Name di conseguenza.
Quindi la mia domanda è: come dovrei cambiare il modo in cui sto scrivendo questo codice in modo da poter ottenere un collegamento dati sia sull'oggetto radice che sulla proprietà?
Grazie mille per aver condiviso i link alle sezioni appropriate! Ironia della sorte, avevo attraversato entrambe le sezioni ad un certo punto nel passato, ma quando stavo scrivendo questo codice non mi è venuto in mente che era quello che dovevo fare. Una domanda minore: c'è qualche altro costrutto che dovrei usare per indicare il rendering di un oggetto usando il modello X invece di? –