2013-04-10 4 views
3

У меня проблемы с использованием Sammy с угловым.SammyJS с AngularJS

У меня есть этот модуль приложения

var appModule = angular.module('myApp', []).run(function (routes) { 
    routes.run('#/'); 
}); 

И этот сервис

appModule.factory('routes', function ($rootScope) { 

    var routes = $.sammy(function() { 

     this.get('#/room/:roomId', function() { 
      var that = this; 
      setTimeout(function() { 
       $rootScope.$broadcast('user has entered the room', {roomId: that.params['roomId']}); 
      }, 1000); 

     }); 

    }); 

    return routes; 
}); 

Мне нужно это setTimeout, потому что я не знаю, когда $ rootScope доступны. Когда я помещаю низкий интервал в setTimeout, событие не транслируется. Один второй интервал работает нормально, но я не хочу таких уродливых решений. Как я могу быть уверен, что $ rootScope готов, и я могу запустить функцию обработчика URL-адресов?

ответ

2

ли вы на самом деле «нужно», чтобы использовать Сэме

Вы пытались использовать маршрутизацию угловой, чтобы получить параметры?

см

http://docs.angularjs.org/api/ng.$route

и

http://docs.angularjs.org/api/ng.$routeParams

ура Stu

+0

я нужна "облегченную систему маршрутизации. В моем случае достаточно вещательного события. Но в $ routeProvider я должен использовать угловой вид, указать templateUrl, контроллер для этого представления и т. Д. Мне не нужны никакие представления, просто обратный обратный вызов, связанный с URL. –