Angular es el jugador más impresionante que he visto para el enlace de datos bidireccional. Puede usar objetos simples de JavaScript antiguos, adjuntarlos a un objeto de ámbito angular y luego vincular el alcance a una sección del DOM. Aquí hay un ejemplo para Angular 0.9. (Angular 1.0 utiliza un API muy diferente para lograr lo mismo.)
// angular.compile() returns a databinding function
var databind = angular.compile(document.documentElement);
var model = angular.scope();
// add data to the scope object
model.greeting = "Hello, World!";
model.colors = ["red", "green", "blue"];
// hook 'em up
databind(model);
Se pueden utilizar expresiones angulares en el código HTML de enlace de datos, incluyendo los controles de formulario.
<!DOCTYPE html>
<input name="greeting" />
<span ng:repeat="color in colors" style="color: {{color}}">
{{color}}
</span>
En este caso, la propiedad de saludo de los objetos del osciloscopio se actualiza con cada pulsación de tecla en el cuadro de texto.
O si no desea utilizar expresiones de enlace de datos en su HTML, puede hacer todo de forma manual.
model.$watch("greeting", function (value) {
// when the greeting changes, update the DOM
$("input[name=greeting]").val(value);
});
Entonces, cada vez que actualice el objeto alcance y la llamada $ eval(), si algo ha cambiado, se notificará a los oyentes.
model.greeting = "Hi.";
model.$eval();
Y la mejor parte es que se pueden realizar cambios en cualquier unidos al alcance, llamar a su método $ eval(), y el código HTML se actualiza automáticamente.
model.colors.append("yellow");
model.colors.sort();
model.$eval(); // notifies listeners, including bound HTML
Knockout JS es inferior porque en lugar de trabajar con los llanos de JavaScript objetos, matrices, cadenas y números, se debe crear instancias de sus Observable
y ObservableArray
clases para hacer de enlace de datos.
¡Disfrútalo!
Sigue trabajando en ese hombre. Muy ligero que otros enlaces de datos que he visto. Y más claro. – stringparser
@phoenix, gracias! Acabamos de lanzar el proyecto en Beta. Muy emocionado de ver que te gusta. – tjscience