用emberjs中的ajax填充视图?

时间:2012-03-11 13:33:34

标签: ember.js

可以在加载JSON后重新渲染视图吗?

目前的模板& view我不会渲染变量“current_user”

我的模板:

<body>
...
<script type="text/x-handlebars">
    {{#view MyApp.LogoutView id="logout-btn"}}}
        <button>
            Logout: {{ current_user }}
        </button>
    {{/view}}
</script>
...
</body>

我的文件准备就绪:

window.MyApp = Ember.Application.create();

$(document).ready(function() {
    MyApp.LogoutView = Ember.View.extend({
        userString: function() {
            var name = this.get('current_user');
            return name;
        }.property('current_user')
    });

    $.getJSON('/api/1/me', function(data) {
        var user = MyApp.UserModel.create({id: data.id, username: data.username});
        MyApp.current_user = user;
    });
});

我还在模板中尝试过:{{MyApp.current_user}},但是在Firefox中它会抛出错误:

  

必须使用Ember.set()才能访问此属性。

在Chrome上我得到了它:

<button>Logout <MyApp.UserModel:ember161></button>

感谢。

1 个答案:

答案 0 :(得分:1)

我偶然发现了一个解决方案,不确定它是不是很好,但似乎有效:

MyApp.current_user = MyApp.UserModel.create();

$.getJSON('/api/1/me', function(data) {
    var user = MyApp.UserModel.create({id: data.id, username: data.username});
    MyApp.set('current_user', user);
});