Zendesk の ember-resource アダプタを ember.js で使用する方法について、現在有効な例はありますか? モデルの定義方法は理解できたと思いますが、コントローラーとルートでの使用方法に関するヒントが見つかりません。
質問する
587 次
1 に答える
2
一般に、特定のルートには次の 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
}
});
Ember-Resource
ケース 2 は、のfetch
メソッドが 2 つの引数 (基になる JSON データとモデル自体) で解決される promise を返すため、より複雑です。そのEmber.Route
ような promise を返す は、最初のものをに渡すだけなsetup
ので、独自の promise を作成する必要があります。
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 に答える