dist/js/mobile-angular-ui.core.js
function(attr) {
    if (!attr || attr === '') {
      return [];
    }
    var vars = attr ? attr.trim().split(/ *, */) : [];
    var res = [];
    for (var i = 0; i < vars.length; i++) {
      var item = vars[i].split(/ *as */);
      if (item.length > 2 || item.length < 1) {
        throw new Error('Error parsing uiScopeContext="' + attr + '"');
      }
      res.push(item);
    }
    return res;
  }
function(attr) {
    if (!attr || attr === '') {
      return [];
    }
    var vars = attr ? attr.trim().split(/ *, */) : [];
    var res = [];
    for (var i = 0; i < vars.length; i++) {
      var item = vars[i].split(/ *as */);
      if (item.length > 2 || item.length < 1) {
        throw new Error('Error parsing uiScopeContext="' + attr + '"');
      }
      res.push(item);
    }
    return res;
  }
@name uiScopeContext
@inner
@description

`uiScopeContext` is not a directive, but a parameter common to any of the
`ui-*` directives in this module.

By default all `ui-*` conditions in this module evaluates in the context of
`SharedState` only, thus scope variable are not accessible. To use them you have
two options:

#### 1. pre-interpolation

You can use pre-interpolation in expression attribute. For instance the following syntax
is ligit:

``` html
<div ui-if='state{{idx}}'><!-- ... --></div>
```

In this case `idx` value is taken from scope and embedded into
conditions before parse them.

This works as expected and is fine for the most cases, but it has a little caveat:

The condition has to be re-parsed at each digest loop and has to walk scopes
in watchers.

#### 2. uiScopeContext

If you are concerned about performance issues using the first approach
`uiScopeContext` is a more verbose but also lightweight alternative
to accomplish the same.

It allows to use current scope vars inside `ui-*` conditions, leaving
other scope vars (or the entire scope if not present) apart from the
condition evaluation process.

Hopefully this will keep evaluation running against a flat and small data
structure instead of taking into account the whole scope.

It is a list `scopeVar[ as aliasName] [, ...]` specifing one of more scope
variables to take into account when evaluating conditions. ie:

``` html
<!-- use item from ng-repeat -->
<div ui-if="openPanel == i" ui-scope-context='i' ng-repeat="i in [1,2,3]">
<div class="panel-body">
<!-- ... -->
</div>
</div>
```

``` html
<div ui-if="sharedState1 == myVar1 && sharedState2 == myVar2"
ui-scope-context="myVar1, myVar2"
>
</div>
```

Be aware that scope vars will take precedence over sharedStates so,
in order to avoid name clashes you can use 'as' to refer to scope vars
with a different name in conditions:

``` html
<div ui-if="x == myVar1 && y == myVar2"
ui-scope-context="x as myVar1, y as myVar2"
>
</div>
```