dart - AngularDart routes: Optional parameter -
is possible setup optional route parameters without setting secondary route? want set simple rest type interface path defined such:
reports/:reporttype/:reportid
navigating reports/:reporttype allow listing completed reports of specified type , navigating full path bring specific report. first portion have working fine, i'm unable determine how make last segment optional.
using following route definition, enter method called when parameters specified:
void routesinit(router router, routeviewfactory view) { view.configure({ 'report' : ngroute( // :rptid cannot null (aka not provided) path: '/reports/:rpttype/:rptid', enter: (routeenterevent e) { print(e.parameters); }) }); } i've tried standard type optional braces around :rptid such parents /reports/:rpttype(/:rptid) , square braces /reports/:rpttype(/:rptid) no avail.
i've tried following:
void routesinit(router router, routeviewfactory view) { view.configure({ 'report' : ngroute( // :rptid cannot null (aka not provided) path: '/reports/:rpttype', enter: (routeenterevent e) { print(e.parameters); }, mount: { 'report_type' : ngroute( path: '/:rptid', enter: (routeenterevent e) { print(e.parameters); print(e.route.parent.parameters); }) }) }); } the problem above both report , report_type enter functions called can't setup views there need kind of check in enter function of report route detect if there child route, , i'm not sure how accomplished either.
is there easier way of specifying optional parameter or should @ changing paths want use mitigate nested/child parameters? (e.g.: use reports/type/:rpttype , reports/single/:rptid)
the solution in case extremely simple. on engineering solution. simple fix, use 2 top-level routes.
void routesinit(router router, routeviewfactory view) { view.configure({ 'report' : ngroute( path: '/reports/:rpttype', enter: (routeenterevent e) { print(e.parameters); }), 'report_id': ngroute( path: '/reports/:rpttype/:rptid', enter: (routeenterevent e) { print(e.parameters); }) }); }
Comments
Post a Comment