Предисловие: Я - опорная точка noob. Большая часть того, что вы видите ниже, может быть ужасным кодом.Информация о прохождении переговоров между Backbone.Views
Итак, вот что у меня есть: Я создаю мобильный трекер для отслеживания тренировок. Я использую фреймворк Junior для обработки некоторых видов переключения - это может быть моей проблемой, но сомнительно.
Это приложение имеет 2 модели: app.Workout
и app.Exercise
. Оба они не привязаны ни к одной базе данных, я просто использую localStorage на этом этапе. Эти модели также имеют 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();
})();
Отлично, теперь у нас есть коллекция.
Как вы знаете, есть тренировки. Эти тренировки связаны с ними Упражнения. Я решил выделить две модели и коллекции, потому что, полагаю, это может стать слишком сложным. Может, я ошибаюсь?
Структура My View также довольно простая. Поток будет идти-то вроде:
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
}
});
}
Я пытаюсь передать workoutName, но это не работает.
Я думаю об этом праве, или есть лучший способ управлять видами/моделями (я слышал о Маррионте).
Спасибо!