[英]Problems migrating Ember from Ember.Object dummy data to data from $.get
我只希望一个$ .get调用来满足特定模型。 我似乎找不到任何能清楚说明如何执行此操作的文档?
即我有一个应用程序控制器为:
App.ApplicationController = Ember.ObjectController.extend({
username: '',
firstname: '',
lastname: ''
});
如何使用$ .get中的数据设置用户名? 我知道有Ember Data和其他库可以执行此操作,但是我想在没有这些库的情况下执行此操作,并且更好地了解Ember如何处理异步数据。.不幸的是,他们的指南没有太大帮助:/
谢谢你的帮助 :)
UPDATE
到目前为止,谢谢大家的回答,但是我认为我对问题的解释不够充分。
我有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}}从未更新? 我知道我在这里缺少一些简单的东西! 再次感谢你的帮助
您可以将ApplicationRoute的模型设置为您获取的JSON:
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return $.getJSON('your_url_goes_here');
}
})
这样,每次输入路线时,模型(以及因此隐含的控制器content
)将被设置为AJAX调用返回的JSON。
使用相关路线的model
挂钩设置model
。 在您的情况下:
App.ApplicationRoute = Ember.Route.extend({
model: function(){
return $.get.......
}
});
模型挂钩将接受异步调用,但是在模型挂钩承诺完成之前,ember不会继续渲染视图。
伙计们非常感谢您的帮助。事实证明这是一个简单的疏忽。
我没有返回我在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()方法内返回一个值
谢谢大家对这个问题的回答和关注
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.