From ac899d0da59157fa1c6429510791b6c3103d9401 Mon Sep 17 00:00:00 2001 From: Luis Ramón López Date: Sat, 26 Jan 2013 20:15:06 +0100 Subject: feat($compile): '=?' makes '=' binding optional If you bind using '=' to a non-existant parent property, the compiler will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception, which is right because the model doesn't exist. This enhancement allow to specify that a binding is optional so it won't complain if the parent property is not defined. In order to mantain backward compability, the new behaviour must be specified using '=?' instead of '='. The local property will be undefined is these cases. Closes #909 Closes #1435 --- docs/content/guide/directive.ngdoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs/content/guide') diff --git a/docs/content/guide/directive.ngdoc b/docs/content/guide/directive.ngdoc index 2f93ef33..925268bb 100644 --- a/docs/content/guide/directive.ngdoc +++ b/docs/content/guide/directive.ngdoc @@ -336,7 +336,9 @@ compiler}. The attributes are: Given `` and widget definition of `scope: { localModel:'=myAttr' }`, then widget scope property `localModel` will reflect the value of `parentModel` on the parent scope. Any changes to `parentModel` will be reflected - in `localModel` and any changes in `localModel` will reflect in `parentModel`. + in `localModel` and any changes in `localModel` will reflect in `parentModel`. If the parent + scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You + can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional. * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. If no `attr` name is specified then the attribute name is assumed to be the same as the -- cgit v1.2.3