是否有任何关于如何将Zendesk 的 ember-resource 适配器与 ember.js 一起使用的工作和当前示例?我想我了解如何定义模型,但我找不到任何关于如何在控制器和路由中使用它的提示。
问问题
587 次
1 回答
2
一般来说,给定路由有两种方法:(1)立即转到页面并在数据可用时填写数据(2)在转换之前等待数据被获取。
案例 1 非常简单。您create
是模型类的一个实例,调用fetch
并返回它。
var FooRoute = Em.Route.extend({
model: function(params) {
var foo = Foo.create({ id: params.id });
foo.fetch();
return foo;
},
setup: function(foo) {
// foo is a Foo, but may not have its data populated
}
});
情况 2 更复杂,因为Ember-Resource
'sfetch
方法返回一个使用两个参数解析的承诺——底层 JSON 数据和模型本身。返回此类承诺的 AnEmber.Route
只会将第一个传递给setup
,因此我们必须创建自己的承诺:
var FooRoute = Em.Route.extend({
model: function(params) {
var foo = Foo.create({ id: params.id }),
deferred = $.Deferred();
foo.fetch().then(
function(json, model) { deferred.resolve(model); },
function(error) { deferred.reject(error); }
);
return deferred.promise();
},
setup: function(foo) {
// foo is a Foo with its data populated
}
});
于 2013-07-14T20:51:09.840 回答