EmberJS - Attacchi

L'associazione è una potente funzionalità di Ember.js che aiuta a creare un collegamento tra due proprietà e se una delle proprietà viene modificata, l'altra viene aggiornata automaticamente. Puoi anche associare lo stesso oggetto o oggetti diversi.

Sintassi

ClassName1 = Ember.Object.create ({
   //code here
});

ClassName2 = Ember.Object.extend ({
   //code here
});

ClassName3 = ClassName2.create ({
   //code here
});

La sintassi descrive l'associazione di due proprietà ClassName1 e ClassName2 . Se ClassName2 viene aggiornato, verrà riflesso in ClassName1 .

Esempio

L'esempio seguente crea un collegamento tra due proprietà e aggiorna una proprietà quando un'altra proprietà viene modificata:

import Ember from 'ember';

export default function() {
   var CarOne = Ember.Object.create ({
      //primary value
      TotalPrice: 860600
   });

   var Car = Ember.Object.extend ({
      //creates property which is an alias for another property
      TotalPrice: Ember.computed.alias('CarOne.TotalPrice')
   });

   var CarTwo = Car.create ({
      CarOne: CarOne
   });
   document.write('Value of car before updating: ' + CarTwo.get('TotalPrice'));
   
   //sets the car price
   CarTwo.set('TotalPrice', 930000);
   
   //above car price effects the CarOne
   document.write('<br>Value of car after updating: ' + CarOne.get('TotalPrice'));
}

Ora apri il file app.js e aggiungi la seguente riga all'inizio del file:

import objectmodelbindings from './objectmodelbindings';

Dove, objectmodelbindings è un nome del file specificato come "objectmodelbindings.js" e creato nella cartella "app".

Quindi chiama gli "objectmodelbindings" ereditati in fondo, prima dell'esportazione. Esegue la funzione objectmodelbindings che viene creata nel file objectmodelbindings.js -

objectmodelbindings();

Produzione

Esegui il server ember e otterrai il seguente output:

L'associazione del modello a oggetti propaga i cambiamenti in una direzione utilizzando l'associazione unidirezionale che è spiegata in questo collegamento .