我只想要一个$ .get调用来满足特定模型。我似乎无法找到任何清楚地显示如何执行此操作的文档?
即。我有一个应用程序控制器:
App.ApplicationController = Ember.ObjectController.extend({
username: '',
firstname: '',
lastname: ''
});
如何使用$ .get中的数据设置用户名?我知道有Ember Data和其他库可以做到这一点,但我想在没有这些库的情况下这样做,并且更好地理解Ember如何使用异步数据..遗憾的是,他们的指南并没有多大帮助:/
感谢您的帮助:)
更新
感谢大家到目前为止的答案,但我认为我没有充分解释我的问题。
我有application.hbs :
<div class="medium-8 columns">
<dl class="account-menu right">
<dd><p><a href="">Welcome, {{username}}</a></p></dd>
<dd><p><a href="">Customer Support</a></p></dd>
<dd><a href="#">Log Out</a></dd>
</dl><!-- .acccount-menu -->
</div>
我有模特:
App.User = Ember.Object.extend({
id : '',
firstName : '',
lastName : '',
username : '',
init: function(){
console.log(App.Account.get('username');
},
fullName: function(){
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName'),
}).reopenClass({
loadAccount: function(){
return $.get( "http://localhost:8080", { id: 1, request: "account" }).then(function(response){
App.Account = App.User.create({'username': response.username});
});
}
});
控制器与上述相同。我成功从App.User.create创建一个新的App.Account并成功触发App.User抽象类? init方法..问题是{{username}}永远不会更新?我知道我在这里缺少一些简单的东西!再次感谢您的帮助
答案 0 :(得分:1)
您可以将ApplicationRoute的模型设置为您获取的JSON:
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return $.getJSON('your_url_goes_here');
}
})
这样,每次进入路径时,模型(因此隐式地是控制器的content
)都将被设置为AJAX调用返回的JSON。
答案 1 :(得分:0)
使用关联路线的model
挂钩设置模型。在你的情况下:
App.ApplicationRoute = Ember.Route.extend({
model: function(){
return $.get.......
}
});
模型钩子将接受异步调用,但是在模型钩子声明完成之前,ember不会继续呈现视图。
答案 2 :(得分:0)
伙计们非常感谢你的帮助..原来这是一个简单的疏忽......
我不返回我在loadAccount方法中创建的对象模型承诺'App.User',该方法由ApplicationRouter模型钩子调用。
错误代码
loadAccount: function(){
return $.get( "http://localhost:8080", { id: 1, request: "account" }).then(function(response){
App.Account = App.User.create({'username': response.username});
});
好代码
loadAccount: function(){
return $.get( "http://localhost:8080", { id: 1, request: "account" }).then(function(response){
return App.User.create({'username': response.username});
});
这很有道理。 $ .get方法向我的模型返回一个我从未在.then()方法中返回值的承诺
谢谢大家的回答和对此事的关注