2016-06-11 4 views

答えて

0

ウィジェットで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'); 

は、その後、あなたのコレクションを変えてきましたし、すべてが動作するはずです

関連する問題

 関連する問題