javascript – 如何将Knockout js模型绑定到向导样式UI

我正在使用Knockout js.我有一个包含对象数组的视图模型,我想允许用户使用向导样式界面编辑其中一个对象.我所遇到的问题是向导将根据所做的选择显示不同的步骤.例如:

>如果用户在步骤1中选择“是”,则显示步骤2a
>如果用户在步骤1中选择“否”,则显示步骤2b(即不同的对话框)

这样,通过向导的路径不是线性的.

我的问题是,我将所有可能的向导UI步骤绑定到启动时的视图模型,即使一些步骤将永远不会显示,并且某些屏幕上的绑定将无效(例如,第5步可能绑定到viewmodel.theObject.PropertyA. PropertyB.PropertyC(),但PropertyB在步骤1仍然为空).

一个更好的方法可能是绑定到UI步骤,因为它们显示,但我的问题是那里我不知道一个好的方法“解除绑定”模型一旦步骤完成,所以我可以结束的步骤绑定到来自原始列表的多个对象!

解决方法

我认为这样做的好方法是让您的视图模型成为一系列步骤,并将您的UI绑定到“selectedStep”.然后,每个步骤都可以动态地选择想要使用的模板(就像在这post中).

这是一个粗略的想法:http://jsfiddle.net/rniemeyer/SSY6n/

这样,模板绑定就可以根据所选择的任何步骤来处理生成/绑定/清理动态内容.如果步骤在observableArray中,那么甚至可以动态添加步骤.也许你有一个列表的所有可能的步骤,然后有一个“activeSteps”数组,代表当前有效的步骤,基于用户的选择.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...