此应用程序用于向练习添加参数,以便为客户/客户定制。
练习对象看起来像这样(为简单起见,已删除了许多其他值):
{
"exerciseName": "Squat",
"Params": [{
"param": "Sets",
"childParam" : ""
}, {
"param": "Reps",
"childParam" : ""
}]
}
我想为用户提供一些复选框,以快速添加/删除Params到此练习中。
options数组目前如下所示:
$scope.availibleParams = [{
"param": "Reps",
"childParam": ""
}, {
"param": "Tempo",
"childParam": ""
}, {
"param": "Sets",
"childParam": ""
}, {
"param": "Weight",
"childParam": ""
}, {
"param": "Rest",
"childParam": ""
}];
所以在这个特定的例子中,当练习加载param
“Reps”的复选框时,“Sets”将被检查,因为它们存在于活动练习中。
检查新的参数后,应将它们推入activeExercise数组,反之亦然,如果未选中则应删除它们。
除此要求外,我还需要能够添加自定义参数。如果上述列表中存在该选项,则用户可以添加一次。一旦他们添加了自定义参数,它应该显示在练习和复选框列表中。
我已经设法尝试查找activeExercise.Params
数组并设法ng-repeat
选项,但是对此进行绑定并在检查和取消选中时运行所需的添加/删除功能对于我的智商!
我在CodePen上创建了一个Pen来显示我设法到达的位置。
此外,我不知道该帖子的标题是什么,请随时纠正我。
答案 0 :(得分:0)
我不确定,但也许你需要这个?
我有一个带参数的数组,并且属性 isActive
$scope.availibleParams = [{
"param": "Reps",
"isActive": true,
"childParam": ""
}, ...
https://codepen.io/anon/pen/qmdBeE?editors=1010
更复杂的案例:
我们仍有 isActive 属性,但我们会检查onchange事件是否发生了实际情况,所以
1)我们初始化我们的主动练习,如果它们在 $ scope.activeExercise 中显示,则将可用参数设置为活动状态。看看那个功能:
scope.initActiveExercices()
2)我们在 $ scope.updateActiveExercices()中同步自定义和可用的练习。
首先我们清除 $ scope.activeExercise 数组
然后我们迭代可用和自定义params数组,并查看isActive属性,如果它是真的我们推送到 $ scope.activeExercise 数组
就是这样。
这是新的合作example