@@ -11,7 +11,7 @@ angular.module('angularUtils.directives.uiBreadcrumbs', ['ui.router', 'templates
11
11
scope : {
12
12
displaynameProperty : '@'
13
13
} ,
14
- link : function ( scope , element ) {
14
+ link : function ( scope ) {
15
15
scope . breadcrumbs = [ ] ;
16
16
if ( $state . $current . name !== '' ) {
17
17
updateBreadcrumbsArray ( ) ;
@@ -29,10 +29,13 @@ angular.module('angularUtils.directives.uiBreadcrumbs', ['ui.router', 'templates
29
29
var currentState = $state . $current ;
30
30
31
31
while ( currentState && currentState . name !== '' ) {
32
- breadcrumbs . push ( {
33
- displayName : getDisplayName ( currentState ) ,
34
- route : currentState . name
35
- } ) ;
32
+ var displayName = getDisplayName ( currentState ) ;
33
+ if ( displayName !== false ) {
34
+ breadcrumbs . push ( {
35
+ displayName : displayName ,
36
+ route : currentState . name
37
+ } ) ;
38
+ }
36
39
currentState = currentState . parent ;
37
40
}
38
41
@@ -48,25 +51,34 @@ angular.module('angularUtils.directives.uiBreadcrumbs', ['ui.router', 'templates
48
51
* @returns {* }
49
52
*/
50
53
function getDisplayName ( currentState ) {
54
+ var resolveProperty ;
55
+ var i ;
56
+ var propertyReference ;
57
+ var propertyArray ;
58
+ var displayName ;
59
+
51
60
if ( ! scope . displaynameProperty ) {
52
61
// if the displayname-property attribute was not specified, default to the state's name
53
62
return currentState . name ;
54
63
}
55
- var displayName ;
56
- var propertyArray = scope . displaynameProperty . split ( '.' ) ;
57
- var propertyReference = currentState ;
64
+ propertyArray = scope . displaynameProperty . split ( '.' ) ;
65
+ propertyReference = currentState ;
58
66
59
- for ( var i = 0 ; i < propertyArray . length ; i ++ ) {
60
- if ( propertyReference [ propertyArray [ i ] ] ) {
61
- propertyReference = propertyReference [ propertyArray [ i ] ] ;
67
+ for ( i = 0 ; i < propertyArray . length ; i ++ ) {
68
+ if ( angular . isDefined ( propertyReference [ propertyArray [ i ] ] ) ) {
69
+ if ( propertyReference [ propertyArray [ i ] ] === false ) {
70
+ return false ;
71
+ } else {
72
+ propertyReference = propertyReference [ propertyArray [ i ] ] ;
73
+ }
62
74
} else {
63
75
// if the specified property was not foundm default to the state's name
64
76
return currentState . name ;
65
77
}
66
78
}
67
79
if ( propertyReference . indexOf ( ':' ) === 0 ) {
68
80
// the : syntax indicates a reference to a resolved property, so use that instead
69
- var resolveProperty = propertyReference . substr ( 1 ) ;
81
+ resolveProperty = propertyReference . substr ( 1 ) ;
70
82
displayName = currentState . locals . globals [ resolveProperty ] ;
71
83
} else {
72
84
displayName = propertyReference ;
0 commit comments