Как мне объявить переменную в определенной области видимости в coffeescript?

Я пытаюсь написать тест на жасмин в coffeescript, который использует блок beforeEach. Это наталкивается на проблему с областью видимости переменных coffeescript. Вот что я хотел бы написать:

describe 'PhoneDetailCtrl', () ->
  beforeEach () ->
    scope = angular.scope()
    $browser = scope.$service('$browser')

  it 'should fetch phone detail', () ->
    scope.params = {phoneId:'xyz'}
    $browser.xhr.expectGET('phones/xyz.json').respond({name:'phone xyz'})
    ctrl = scope.$new(PhoneDetailCtrl)

    expect(ctrl.phone).toEqualData({})
    $browser.xhr.flush()

    expect(ctrl.phone).toEqualData({name:'phone xyz'})

Это не работает, хотя, потому чтоscope а также$browser будет объявлено сvar во внутренней сфере. То есть однажды вbeforeEach а затем снова вit блок. Я могу заставить переменные быть объявленными в правильной области видимости, инициализируя их, но это кажется очень странным:

describe 'PhoneDetailCtrl', () ->
  $browser = {}
  scope = {}
  beforeEach () ->
    scope = angular.scope()
    $browser = scope.$service('$browser')

  it 'should fetch phone detail', () ->
    scope.params = {phoneId:'xyz'}
    ...

Это работает, но JavaScript, к которому он компилируется, на самом деле

describe('PhoneListCtrl', function() {
  var $browser, ctrl, scope;
  $browser = {};
  ctrl = {};
  scope = {};

где все, что мне нужно, это линияvar $browser, ctrl, scope;, Могу ли я написать это более кратко в coffeescript?

Ответы на вопрос(2)

Ваш ответ на вопрос