[Inject( source="bean.deeply.nested.property", bind="true" )] doesn't create binding.

Description

An [Inject] tag with a deeply nested property will not have a binding created.

InjectProcessor (line 130) calls ChangeWatcher.canWatch(namedBean.source, chain) to determine whether to create a binding. The canWatch method documentation [1] says the name property can be a chain, however this documentation is incorrect [2]. Only single property names are accepted.

Swiz should consult ChangeWatcher.canWatch only if watching a single property, as opposed to a property chain.

var bind:Boolean = injectTag.bind &&
(chain.indexOf(".") == -1 || ChangeWatcher.canWatch( namedBean.source, chain )) &&
!( destPropName is QName );

[1] http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as
[2] https://bugs.adobe.com/jira/browse/FLEXDOCS-1324

Environment

None

Status

Assignee

ChrisC

Reporter

Matthew Hall

Labels

None

Fix versions

Affects versions

Priority

Minor
Configure