gpt4 book ai didi

javascript - 使用 Ractive 在多重选择中设置预选值

转载 作者:行者123 更新时间:2023-12-03 04:48:02 24 4
gpt4 key购买 nike

我在 Ractive 中渲染了一个选择多个,并计算出所有可能选项的列表,效果非常好。但我找不到预选值的正确方法。

到目前为止,我有类似的东西:

data = [{
type: "Person",
Name: "John",
worksFor: [
"1",
"2"
]},{
type: "department",
id: "1",
Name: "Sales"
},{
type: "department",
id: "2",
Name: "Marketing"
},{
type: "department",
id: "3",
Name: "Accounting"
}]
new Ractive({
el: '#list',
template: DataTpl,
data: {myData: data},
computed: {
DepartmentList () {
//some code
return list_of_all_Departments;
},
PersonsList () {
//some Code
return list_of_persons
});

所以在我的模板中我尝试了

{{#PersonsList}}
<select multiple>
{{#DepartmentList}}
<option value="{{id}}"
{{#if _.includes(PersonsList.worksFor, id)}} selected{{/if}}>{{Name}}
</option>
{{/DepartmentList}}
</select>
{{/PersonsList}}

但这只是让我无法计算。有谁知道如何获得这些预选?

最佳答案

这是 Ractive 偏离标准的事情之一。您需要输入 value属性 <select> 。已选<option>value变成<select>value 。您将从 <select> 获得的数据类型取决于是否是多个。如果是单选,您将得到一个值。如果是多选,您将得到一个数组。

设置预选值正好相反。将数据中的值分配给 <select>value并且,假设这些值存在于<option>上s,他们将被选中。不需要模板修改。

Ractive.DEBUG = false;

var data = [{
type: "Person",
Name: "John",
worksFor: [
"1",
"2"
]
}, {
type: "department",
id: "1",
Name: "Sales"
}, {
type: "department",
id: "2",
Name: "Marketing"
}, {
type: "department",
id: "3",
Name: "Accounting"
}];

new Ractive({
el: '#list',
template: '#template',
data: {
selectedDepartments: [],
myData: data
},
computed: {
DepartmentList() {
return this.get('myData').filter(v => v.type === 'department');
},
PersonsList() {
return this.get('myData').filter(v => v.type === 'Person');
}
}
});
<script src="https://unpkg.com/ractive@0.8.11/ractive.min.js"></script>
<div id="list"></div>

<script type="template/ractive" id="template">
{{#PersonsList}}
{{ Name }}

<select multiple value="{{ worksFor }}">
{{#DepartmentList}}
<option value="{{id}}">{{Name}}</option>
{{/DepartmentList}}
</select>
{{/PersonsList}}
</script>

关于javascript - 使用 Ractive 在多重选择中设置预选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com