ウィジェットでapp/Model
を使用するように指定する方法がありますが独立しています。それらはアプリ全体で共有されるはずです。したがって、アプリケーションや特定のモデルに依存することは、それが想定されている方法ではなく、設計されているため、この理由では機能しません。
あなたがこのアプリケーション専用のウィジェットを自分で作成している場合は削除し、コードを別のコントローラに移動します。
アプリ全体でウィジェットを共有し、その中でコレクションを使用する場合は、エクスポートされた関数を作成してそのコレクションを提供します。
ウィジェットでは、一般名を持つモデルファイルを作成します。あなたのwidget.xmlの中にそのコレクションを含めてください。次に、あなたのwidget.jsにウィジェットなど、あなたのコントローラに続いて収集
exports.setCollection = function(collection){
$.myCollection.reset(collection.models);
}
をインポートする方法を作成します。
$.myWidget.setCollection($.myOtherCollection);
これは、ウィジェットのコレクションにインポートされたコレクションのすべてのモデルを設定します。一致しないID属性を持っていますか? IDが一致するようにsetCollection
メソッドで変換を行います。そうすれば、アプリ全体で再利用できます。たとえば、あなたのID属性がのObjectIdである
、そしてあなたは、この:ウィジェットなど、あなたのコントローラで次に
exports.setCollection = function(collection, IdAttribute){
_.each(collection, function(model){
model.set({id: model.get(IdAttribute)}, {silent: true});
});
$.myCollection.reset(collection.models);
}
:
$.myWidget.setCollection($.myOtherCollection,'ObjectId');
は、その後、あなたのコレクションを変えてきましたし、すべてが動作するはずです