序文: 私はバックボーン初心者です。以下に示すものの多くは、おぞましいコードかもしれません。
だからここに私が持っているものがあります: モバイル ワークアウト アプリ トラッカーを構築しています。ビューの切り替えの一部を処理するためにジュニアフレームワークを使用しています-これは私の問題かもしれませんが、疑わしいです。
このアプリには と の 2 つのモデルがapp.Workout
ありapp.Exercise
ます。両方ともデータベース バックエンドに関連付けられていません。この時点では localStorage を使用しているだけです。これらのモデルには、ala の 2 つのコレクションもあります。
var app = app || {};
(function() {
'use strict';
/* collection */
app.ExercisesCollection = Backbone.Collection.extend({
model: app.Exercise,
localStorage: new Backbone.LocalStorage("Exercises")
});
/* create the collection */
app.Exercises = new app.ExercisesCollection();
})();
これでコレクションが完成しました。
ご存知のように、ワークアウトがあります。これらのワークアウトには、関連するエクササイズが含まれています。2 つのモデルとコレクションを分離することにしました。そうしないと複雑になりすぎる可能性があるためです。たぶん私は間違っています?
私のビュー構造もかなり基本的です。フローは次のようになります。
Home ->
Workouts ->
(you can add workouts here, or delete)
Exercises ->
(you can add exercises here, or delete)
Add Exercise
私が苦労しているのは、これらのビュー間でデータを渡す方法です。たとえば、ワークアウトを追加しました (これは正常に動作します。コレクションに追加しているだけです)。そのワークアウトを選択したので、それにエクササイズを追加したいと思います。素晴らしいAddExerciseView
です。
オプションでいくつかのことを「渡す」ことを試みましたが、うまくいかないようです。
onClickButtonAdd: function() {
Jr.Navigator.navigate('add-exercise', {
workoutName: this.workoutName,
trigger: true,
animation: {
type: Jr.Navigator.animations.SLIDE_STACK,
direction: Jr.Navigator.directions.UP
}
});
}
ワークアウト名を渡そうとしていますが、うまくいきません。
私はこの権利について考えていますか、それともビュー/モデルを管理するためのより良い方法がありますか (マリオネットについて聞いたことがあります)。
ありがとう!