检索URL参数以预先选择多选列表-提线木偶
retrieve URL parameters to pre select multi select list - marionette
我是Marionette的新手。我有一个可以传递参数的路由器。该模板有几个复选框、单选按钮和一个多选列表。当对模板进行rended时,复选框和单选按钮的行为与参数值一致。我正试图找到传递参数的正确方法,以便填充多选列表框中的项目。有可能吗?如果没有,是否可以从路由器中检索URL并更新onBeforeShow功能中的列表框?
我的路由器看起来和这个相似。/search/{"isMine":true,"radioButton":"a1"}
模板如下
<input type="radio" name="radioButton">
<input id="isMine" type="checkbox" id="isMine" >
<select name="optionsList" id="optionsList" multiple>
<option value="1"> One < /option>
<option value="2"> Two < /option>
<option value="3"> Three < /option>
</select>
我尝试了以下操作,但当模板渲染时,列表框中的项目永远不会被选中。
#search/{"taken":true,"radioButton":"a1", "optionsList" : ['1','2']}
这是完全可能的,但需要遵循几个步骤。
概述
首先在Marionette AppRouter中配置路由(请参阅配置路由)。请确保遵循Backbone制定的路线规范(请参阅路线)。
路线
你的路线最终会看起来像:
search/:taken/radioButton:radio/optionsList:optarray
其中,taken
将采用truthy或falsy parmeter,radioButton
将采用字符串,optarray
将是字符串化数组(请参见JSON.stringfy)。
例如,如果take == false
和radioButton == '33a' and
optarray==1',则路由可以是:
"search/0/radioButton:33a/optionsList:1〃;
路由处理程序
AppRouter中的每个路由都必须与一个函数匹配。此功能将捕获从路线中捕获的参数。
样品
假设您将路由与AppRouter中名为showOptionsView
的某个方法相匹配。然后showOptionsView
将接收从路由捕获的参数。
本质上,你会把这样的东西放在一起:
var OptionsLayout = Marionette.LayoutView.extend({...});
var OptionsView = Marionette.ItemView.extend({...});
var appOptionsLayout = new OptionsLayout;
var MyRouter = Marionette.AppRouter.extend({
routes : {
"search/:taken/radioButton:radio/optionsList:optarray": "showOptionsView"
},
showView: function(taken, radioButton, optArray) {
var newOptionsView = new OptionsView({
taken: taken,
radioButton: radioButton,
optionArray: JSON.parse(optArray)
})
}
});
如何实现OptionsView模板中的选项,我将留给您。这个问题的答案是如何将参数从URL获取到您想要的视图。
AppRoute控制器
该示例使用最直接的方法来使用AppRoute,其中附加到路由的方法是AppRoute对象本身的属性。如果您可以将类似的路由及其方法分组在一起,请参阅向AppRoute添加控制器对象的文档。
- 要求输入在数据列表中
- 从javascript创建一个列表
- 如何使用jQuery选择下拉列表的值
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- 如何使用json将对象列表从java转换为javascript
- 区分JSON中的矩阵和列表列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 接受不在列表中的值-引导组合框
- 禁用jQuery中的下拉列表
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 如何在javascript中迭代数字列表
- 如何在按钮中显示下拉列表中选定的元素
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 如何使用提线木偶创建html列表
- 检索URL参数以预先选择多选列表-提线木偶