2013-04-10 46 views
3

我使用Sammy與Angular有問題。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

歡呼 斯圖

+0

我 '需要' 輕量級路由系統。就我而言,只是廣播事件就夠了。但是在$ routeProvider中,我應該使用角度視圖,爲此視圖指定templateUrl,控制器等。我不需要任何視圖,只需觸發與url關聯的回調。 – 2013-04-10 06:28:03