Emberjs自动更新视图

时间:2014-04-11 14:54:38

标签: ember.js

对于我的UI,我需要在导航栏的应用程序模板中显示一些信息。我需要更准确地显示帐户名称。

当我第一次加载页面时,我的导航栏是空的,但是当我登录并进行转换后,我想在导航栏上显示这些信息。

问题是当你在登录页面时,信息不是我的本地存储,但是当你在主页上时,我的本地存储被填充但在我看来没有任何改变。

App.ApplicationView = Ember.View.extend({
    username: fctToGetUserName()
})

每次修改某些数据时,是否有任何方法可以更新视图?

[编辑]

我的登录后是否可以使用观察点在我的视图中触发init方法?

App.LoginController = Ember.Controller.extend({
    actions: {
        login: function() {
            //DO MY LOGIN STUFF AND POPULATE MY LOCALSTORAGE AND CIE
            var isRegistered = true;
        }
    }
})

App.ApplicationView = Ember.View.extend({
    myVar: null,

    actions: {
        initMyVar: function() {
            myVar = localStorage["myVar"];
        }.observes('isRegistered')
    }
})

1 个答案:

答案 0 :(得分:0)

我会向控制器发送一个动作来更新视图。像这样:

App.LoginController = Ember.Controller.extend({
    needs: ['application'],

    actions: {
        login: function() {
            var controller = this.get('controllers.application');
            controller.send('didLogin');
        }
    }
});

App.ApplicationController = Ember.ObjectController.extend({
    myVar: null,

    actions: {
        didLogin: function() {
            this.set('myVar', localStorage['myVar']);
        }
    }
});

App.ApplicationView = Ember.View.extend({
    myVar: Ember.computed.alias('controller.myVar')
});