|
1 | 1 | /** |
2 | 2 | * State-based routing for AngularJS |
3 | | - * @version v0.2.16 |
| 3 | + * @version v0.2.17 |
4 | 4 | * @link http://angular-ui.github.com/ |
5 | 5 | * @license MIT License, http://www.opensource.org/licenses/MIT |
6 | 6 | */ |
@@ -4384,14 +4384,20 @@ function $StateRefActiveDirective($state, $stateParams, $interpolate) { |
4384 | 4384 | return { |
4385 | 4385 | restrict: "A", |
4386 | 4386 | controller: ['$scope', '$element', '$attrs', '$timeout', function ($scope, $element, $attrs, $timeout) { |
4387 | | - var states = [], activeClasses = {}, activeEqClass; |
| 4387 | + var states = [], activeClasses = {}, activeEqClass, uiSrefActive; |
4388 | 4388 |
|
4389 | 4389 | // There probably isn't much point in $observing this |
4390 | 4390 | // uiSrefActive and uiSrefActiveEq share the same directive object with some |
4391 | 4391 | // slight difference in logic routing |
4392 | 4392 | activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope); |
4393 | 4393 |
|
4394 | | - var uiSrefActive = $scope.$eval($attrs.uiSrefActive) || $interpolate($attrs.uiSrefActive || '', false)($scope); |
| 4394 | + try { |
| 4395 | + uiSrefActive = $scope.$eval($attrs.uiSrefActive); |
| 4396 | + } catch (e) { |
| 4397 | + // Do nothing. uiSrefActive is not a valid expression. |
| 4398 | + // Fall back to using $interpolate below |
| 4399 | + } |
| 4400 | + uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope); |
4395 | 4401 | if (isObject(uiSrefActive)) { |
4396 | 4402 | forEach(uiSrefActive, function(stateOrName, activeClass) { |
4397 | 4403 | if (isString(stateOrName)) { |
|
0 commit comments