前言:我是骨干菜鸟。您在下面看到的大部分内容可能是可怕的代码。
所以这就是我所拥有的: 我正在构建一个移动锻炼应用跟踪器。我正在使用Junior框架来处理一些视图切换——这可能是我的问题,但值得怀疑。
这个应用程序有 2 个模型:app.Workout
和app.Exercise
. 两者都没有绑定到任何数据库后端,此时我只是使用 localStorage。这些模型也有 2 个集合,ala:
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
}
});
}
我正在尝试传递锻炼名称,但这不起作用。
我是否在考虑这个问题,或者是否有更好的方法来管理视图/模型(我听说过 Marrionette)。
谢谢!