【问题标题】:Access Dynamic Parameters EmberJS访问动态参数 EmberJS
【发布时间】:2013-05-28 17:43:02
【问题描述】:

我想在用户登录后更新视图。从服务器获取他的个人资料图片、姓名等,并使用该信息刷新视图。而且我不想改变我所在的路线。

我处理登录的方式是使用布尔变量isLoggedIn。一旦用户登录,我将其值更改为true。我有一个绑定监听该变量的更改,然后使用用户信息执行对实际路由模型的更新。

App.TripsRoute = Ember.Route.extend
 isLoggedInBinding: 'App.Session.isLoggedIn'

 isLoggedInChanged: (->
   @model()
 ).observes('isLoggedIn')

 model: ->
   App.Trip.find()

所以问题是:有没有办法从路由的自定义方法中访问动态参数来更新相关模型?

注意:我不想在路由的模型钩子中执行此操作,因为它仅在通过 URL 输入时执行。

【问题讨论】:

    标签: javascript model-view-controller ember.js


    【解决方案1】:

    您可以在App 中存储对当前用户的引用并访问该引用以确定用户是否已登录并使用详细信息更新当前视图。

    存储currentUser:

    App = Ember.Application.create({
      currentUser: null
    });
    

    然后可以使用App.get('currentUser')App.set('currentUser', newUser) 在您的应用中的任何位置获取/设置。

    在您的模板中,您可以检查用户是否已登录,如果已登录,则自动显示他们的信息:

      {{#if App.currentUser }}
        <img {{bindAttr src='App.currentUser.avatarURL'}} /> </br>
        Logged in as: {{App.currentUser.name}}
      {{else}}
        Not logged in.
      {{/if}}
    

    一旦您使用当前用户的用户对象更新App.currentUser,Ember 的数据绑定将使用配置文件信息自动更新您的视图。

    Example in JSBin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      相关资源
      最近更新 更多