0

データストアから一連のオブジェクトを取得し、SC.ManyArray をコントローラーに渡し、それから View で ArrangeObjects を反復処理して、カスタム SC.Views を作成する方法を見つけようとしています。 DOM に既に追加されている他のさまざまなビューに追加します。

私が見つけることができるのは、SproutCore のビルド済み ListView/CollectionView/TableView などを使用してこれを行う方法の例だけです。ただし、これらの生成されたカスタム ビューを他のビューに追加する必要があります。

別の関連する別の問題として、MyApp.store.find() の呼び出しから返されたオブジェクトを調べると、dataHashes プロパティには、私が含めたすべてのフィクスチャが含まれていません。データを呼び出すビューをまだ作成していないためかどうかはわかりませんが、コンソールを使用するとすべてのフィクスチャを返すことができるためです。

また、取得しているデータがマスター レコードの toMany リレーションから取得されていることも付け加えておきます。パス MyApp.masterModel.relationProperty を持つ SC.ArrayController のコンテンツへのバインドを使用して、SC.ManyArray を取得しています。

編集:私は MyApp.masterModelController.relationProperty と言うつもりでした

どんな洞察も素晴らしいでしょう。私はこれを2日間理解しようとしてきましたが、GoogleまたはSproutCoreのドキュメントで情報が見つからないようです.

4

1 に答える 1

0

私はそれを理解しました...

私がやったことは、データ収集の管理に使用されるSC.CollectionViewコンテンツを作成してバインドすることです。SC.ArrayControllerこのコレクションビューをchildViews配列に追加すると、モデルtoManyリレーションに関連するフィクスチャが自動的にフェッチされ、作成して設定したカスタムビューが作成されexampleViewSC.CollectionViewstoresdataHashesプロパティがこれらのオブジェクトで更新されました。

オブジェクトを表示するために作成したカスタムビューで、didAppendToDocumentメソッドを上書きし、これらを追加したいビューのコンテナビューへのパスを取得しappendChild、作成したカスタムビューを追加するために使用しました。

最後に必要なのは非表示にすることだったので、プロパティをSC.CollectionViewに設定しました。layout{top:-1000,left:-1000,width:0,height:0}

これがこれにアプローチするための最良の方法であるかどうかは100%わかりませんが、(少なくとも私にとっては)機能します。

これを達成するための他の提案を聞きたいです。

于 2012-09-02T01:49:26.883 に答える