2014-12-04 41 views
1

我試圖顯示一個彈出窗口或模板頁面,如果用戶在註冊後第一次登錄基本上允許他們在去之前配置該頁面上的一些東西儀表板的家,這只是需要方便,這裏是我得到了什麼(望遠鏡代碼)註冊後第一次登錄顯示配置頁一次有效

Router.onBeforeAction(hasCompletedChannels); 

    hasCompletedChannels: function() { 
    if(!this.ready()) return; 
    var user = Meteor.user(); 
    if (user && ! userCompletedChannels(user)){ 
     this.render('connectChannels'); 
    } else { 
     this.next(); 
    } 
    } 

我不很喜歡,因爲這將始終運行每一次,我希望它只是運行一次,和唐甚至不執行檢查功能。是否有可能檢測到第一次登錄? (註冊後)

+0

@ gunr2171更有效的方式將是:後條件滿足其註冊如果可能的話後=第一次登入運行一次?不是每次 – zumbamusic 2014-12-04 01:10:11

回答

0

我想你可以把它綁定到特定的路線。現在你將它綁定到路由器對象(每個渲染強制檢查你指出)。因此,如果您定義登錄功能以在登錄後將某人發送到特定路線,則可以在該路線上進行驗證。

功能Accounts.onLogin爲您提供了登錄後執行某些操作的方法。

喜歡的東西

Router.route('profile', { 
    path: '/profile', 
    onBeforeAction: function() { 
    // Check some stoof 
    // If first time logged in 
    // render first time template 
    // else 
    // this.next() will render the profile page 
    }, 
    waitOn: function() { 
    return [ 
     // some subs 
    ]; 
    }, 
    data: function() { 
    // some data 
    } 
}); 

我假設它會被路由到一個頁面調用配置文件(似乎是有道理的)。您可以通過用戶對象中使用的某些屬性以及要填寫的字段來檢查第一次登錄,並強制渲染不同的模板或子模板。查看Iron Router指南瞭解更多關於如何配置它的想法。

最好的運氣

相關問題