path property
the path used to navigate to the route associated with this path
Implementation
String get path {
final segments = _segments.toList();
final params = _allParams;
for (var i = 0; i < segments.length; i++) {
final segment = segments[i];
if (!segment.startsWith(':')) {
continue;
}
final id = segment.substring(1);
if (!params.containsKey(id)) {
throw Exception(
'No parameter defined for path: ${segments.join('/')}',
);
}
segments[i] = Uri.encodeComponent(params[id]!);
}
final queries = _allQueryParameters;
final query = StringBuffer();
if (queries.isNotEmpty) {
query.write('?');
}
for (var i = 0; i < queries.entries.length; i++) {
final entry = queries.entries.elementAt(i);
query
..write(Uri.encodeComponent(entry.key))
..write('=')
..write(Uri.encodeComponent(entry.value));
if (i != queries.entries.length - 1) {
query.write('&');
}
}
return '/${segments.join('/')}$query';
}