可以在加载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>
感谢。
答案 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);
});