我正在使用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”数组,代表当前有效的步骤,基于用户的选择.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。