EmberJS - Fijaciones

El enlace es una característica poderosa de Ember.js que ayuda a crear un vínculo entre dos propiedades y si una de las propiedades cambia, la otra se actualiza automáticamente. También puede vincular el mismo objeto o diferentes objetos.

Sintaxis

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

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

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

La sintaxis describe el enlace de dos propiedades ClassName1 y ClassName2 . Si ClassName2 se actualiza, se reflejará en ClassName1 .

Ejemplo

El siguiente ejemplo crea un vínculo entre dos propiedades y actualiza una propiedad cuando se cambia otra propiedad:

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'));
}

Ahora abra el archivo app.js y agregue la siguiente línea en la parte superior del archivo:

import objectmodelbindings from './objectmodelbindings';

Dónde, objectmodelbindings es un nombre del archivo especificado como "objectmodelbindings.js" y creado en la carpeta "app".

A continuación, llame a los "enlaces de modelo de objeto" heredados en la parte inferior, antes de la exportación. Ejecuta la función objectmodelbindings que se crea en el archivo objectmodelbindings.js -

objectmodelbindings();

Salida

Ejecute el servidor ember y obtendrá el siguiente resultado:

El enlace del modelo de objeto propaga los cambios en una dirección mediante el enlace unidireccional que se explica en este enlace .