angularjs – UI路由器:如何在状态解析之前验证参数
发布时间:2020-12-17 17:21:16 所属栏目:安全 来源:网络整理
导读:我有一个已知的参数A支持值列表.我需要在触发任何状态的结果之前验证状态参数的值,如果值无效,则提供支持的值.我最初的想法是为参数的value属性使用一个注入函数: params: { A: { value: [ '$stateParams','validator',function validateParamA($stateParam
我有一个已知的参数A支持值列表.我需要在触发任何状态的结果之前验证状态参数的值,如果值无效,则提供支持的值.我最初的想法是为参数的value属性使用一个注入函数:
params: { A: { value: [ '$stateParams','validator',function validateParamA($stateParams,validator) { // return some value } } } } 但是,$stateParams在这一点上没有填充(我希望预览版本就像你得到的解决方案一样),而且这可能会设置一个默认值,而不是$stateParam本身的值.所以我正在寻找像urlRouterProvider.when的$match这样的东西. 我的下一个想法是只使用urlRouterProvider.when.没有骰子:令我沮丧的是,在国家解决之后,这场大火. 我的下一个想法是劫持urlMatcherFactory的编码.同样的交易(火灾之后). 更新 啊!问题是控制器正在通过ngController在UI路由器外部执行.移动它应该修复序列问题(然后什么时候应该工作).今天晚些时候会更新. 解决方法
MarcherFactory做了这个伎俩.在我纠正了ngController废话并将这些控制器带入UI路由器之后,它就像我预期的那样工作.
// url: '/{locale:locale}' function validateLocale(validator,CONSTANTS,value) { var match = validator(value); if (match === true) { return value; } if (match) { // partial match newLocale = match; } else { newLocale = CONSTANTS.defaultLocale; } return newLocale; } $urlMatcherFactoryProvider.type( 'locale',{ pattern: ROUTING.localeRegex },[ // … function localeFactory(validator,CONSTANTS) { return { encode: validateLocale.bind({},validator,CONSTANTS) }; } ] ); :愤怒: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |