 		if i > 0
 			holder = @_aliasMap[path.substring(0, i)]
 			if holder?.path
-				path = holder.path + path.substring(i + 1)
+				path = holder.path + path.substring(i)
 		else
 			holder = @_aliasMap[path]
 			if holder?.path
-				path = holder.alias
+				path = holder.path
 		return @parent.getDataType(path)
 
 	_isExBindingPath: (path) ->

		if i > 0
			holder = @_aliasMap[path.substring(0, i)]
			if holder?.path
				path = holder.path + path.substring(i + 1)
		else
			holder = @_aliasMap[path]
			if holder?.path
				path = holder.alias
		return @parent.getProperty(path)

	getDataType: (path) ->

		return

	getProperty: (path) ->
		if @_rootDataType
			i = path.indexOf(".")
			if i > 0
				path1 = path.substring(0, i)
				path2 = path.substring(i + 1)
			else
				path1 = null
				path2 = path

			if path1
				dataType = @_rootDataType.getProperty(path1)?.get("dataType")
			else
				dataType = @_rootDataType
			return dataType?.getProperty(path2)
		else
			return @parent?.getProperty(path)

	getDataType: (path) ->
		property = @getProperty(path)
