Javascript 使用Ractive在多个选择中设置预选值
我在Ractive中渲染了一个select multiple,其中包含所有可能选项的计算列表,效果非常好。但是我找不到一个正确的方法来预选值 到目前为止,我有一些类似于:Javascript 使用Ractive在多个选择中设置预选值,javascript,ractivejs,Javascript,Ractivejs,我在Ractive中渲染了一个select multiple,其中包含所有可能选项的计算列表,效果非常好。但是我找不到一个正确的方法来预选值 到目前为止,我有一些类似于: data = [{ type: "Person", Name: "John", worksFor: [ "1", "2" ]},{ type: "department", id: "1", Name: "Sales" },{ type: "department", id
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}}
但这只是给了我一个失败的计算。有人知道如何获得这些预选吗?您必须为select设置一个值,并将该值设置为默认值这是Ractive偏离标准的原因之一。您需要在上添加一个value属性。所选的值变为的值。您将从中获取的数据类型取决于它是否是多个数据。如果是单选,则得到一个值。如果它是multipleselect,您将得到一个数组 设置预选值只是另一种方式。将数据中的一个值指定给的值,并假设这些值存在于上,则将选择它们。不需要模板损坏 Ractive.DEBUG=false; 风险值数据=[{ 类型:人,, 姓名:约翰, 工作地点:[ 1. 2. ] }, { 类型:部门,, id:1, 姓名:销售部 }, { 类型:部门,, id:2, 名称:市场营销 }, { 类型:部门,, id:3, 姓名:会计部 }]; 新词{ el:‘列表’, 模板:“模板”, 数据:{ 所选部门:[], myData:数据 }, 计算:{ 部门名单{ 返回这个。获取“我的数据”。filterv=>v.type=='department'; }, 人员名单{ 返回这个。获取'myData'。filterv=>v.type=='Person'; } } }; {{PersonList}} {{Name}} {{部门列表} {{Name}} {{/部门列表} {{/PersonsList}
对不起,我不明白。因为一个人可以为n个部门工作可能有多个值,所以我尝试循环使用这些选项并编写一个选定的值。我只是不知道如何确定正确的值。