Added support for binding to multiple observable objects (properties).

This commit is contained in:
Nedyalko Nikolov
2015-08-25 15:48:25 +03:00
parent 5ef2fea8d8
commit a57d52a304
4 changed files with 396 additions and 72 deletions

View File

@@ -99,6 +99,11 @@ declare module "data/observable" {
*/
notify(data: EventData): void;
/**
* Notifies all the registered listeners for the property change event.
*/
notifyPropertyChange(propertyName: string, newValue: any): void;
/**
* Checks whether a listener is registered for the specified event name.
* @param eventName The name of the event to check for.

View File

@@ -91,6 +91,10 @@ export class Observable implements definition.Observable {
}
}
public notifyPropertyChange(propertyName: string, newValue: any) {
this.notify(this._createPropertyChangeData(propertyName, newValue));
}
public set(name: string, value: any) {
// TODO: Parameter validation
if (this[name] === value) {
@@ -122,8 +126,8 @@ export class Observable implements definition.Observable {
var i;
var entry: ListenerEntry;
for (i = 0; i < observers.length; i++) {
var observersLength = observers.length;
for (i = 0; i < observersLength; i++) {
entry = observers[i];
if (entry.thisArg) {
entry.callback.apply(entry.thisArg, [data]);