【发布时间】:2014-03-31 10:28:21
【问题描述】:
我确信有一种更简单的方法可以完成我当前的任务,但这是我目前知道的唯一方法,因为我刚刚开始使用 Ember。
所以我有一个 RESTful api,它告诉 ember 当前登录的是哪个用户(仅限他们的姓名),以便它可以在页面上显示为 Signed in As {{currentUser}}。我能够使其工作的唯一方法是扩展应用程序路径:
App.ApplicationRoute = Ember.Route.extend({
model: function() {
var deferredData = Ember.Deferred.create();
var list = [];
$.getJSON( '/user/profile/', function(data) {
list.push({
currentUser: data[0].name
})
deferredData.resolve(list);
});
return deferredData;
}
});
然后在我的页面上做:
<p class="navbar-text navbar-right">
<p class="navbar-text navbar-right">Signed in as {{#link-to 'account' class="navbar-link" id="current-user"}}{{#each}}{{currentUser}}{{/each}}{{/link-to}}</p>
</p>
它有效,但我觉得这不是完成我的任务的合适方式。我尝试将App.ApplicationController 与以下内容一起使用:
App.ApplicationControler = Ember.Controller.extend({
currentUser: function() {
$.getJSON( '/user/profile/', function(data) {
return data[0].name
});
}.property()
});
这对我也不起作用。有什么想法我应该做什么/我做错了什么?
更新
在阅读了更多之后,这就是我现在所拥有的,我认为这是我最接近正确的方法
App.ApplicationController = Ember.Controller.extend({
currentUser: function() {
return $.getJSON('/user/profile/').then( function(response) {
console.log(response[0].name);
return response[0].name;
});
}.property()
});
App.applicationController = App.ApplicationController.create();
此时使用数据存储和RESTadapters 对我来说是更好的选择吗?
【问题讨论】:
标签: ember.js