Angular - 在标题中使用可选参数
Angular - 在标题中使用可选参数
如何在标题中使用我的Angular路由中的可选参数。所以我希望textToSearch
出现在标题中:
.when('/search/:textToSearch', { title: '搜索' + textToSearch, templateUrl: 'views/search.html', controller: 'searchController' } )
并且我在routeChangeSuccess中设置标题:
$rootScope.$on('$routeChangeSuccess', function() { // 设置标签 if (!$route.current.title) { document.title = '默认通用标题'; } else { document.title = $route.current.title; } }
Angular - 使用可选参数在标题中的问题出现的原因是忘记注入$interpolate服务。解决方法是在路由参数中使用占位符,并将其与路由参数对象进行插值操作。代码如下:
.when('/search/:textToSearch', { title: 'Searching {{ textToSearch }}', templateUrl: 'views/search.html', controller: 'searchController' })
然后,在$rootScope的$routeChangeSuccess事件中,使用$interpolate服务将标题进行插值操作,并设置为document的title属性。如果$route.current.title不存在,则设置默认标题为"Default Generic Title"。代码如下:
$rootScope.$on('$routeChangeSuccess', function() { //Set thetag if (!$route.current.title) { document.title = 'Default Generic Title'; } else { document.title = $interpolate($route.current.title)($route.current.params); } })
确保在事件处理函数中注入了$interpolate服务。如果还是有问题,请检查是否有错误信息。
注意:以上代码使用的是AngularJS框架。