主要概念如下 - 我们有主要的状态对象,其中包含部分,每个部分都有自己的数据和类型。我想根据部分类型显示每个部分数据。主要对象如下所示:
$array = [
'Apple' => 1,
'Orange' => 0,
'Banana' => 1,
];
echo '<select multiple>';
foreach ($array as $fruit => $sel) {
$selected = 0;
if ($sel == 1) {
$selected = 'selected';
}
echo '<option value="' . $fruit . ' " ' . $selected . '>' . $fruit . '</option>';
}
echo '</select>';
我正在尝试使用敲除映射和每个部分类型的模板,但实际上并不知道如何做到这一点。我所拥有的就是这个 - https://jsfiddle.net/7hd8zed5/1/。有什么建议怎么做?
答案 0 :(得分:1)
您可以通过提供获取foreach
循环的当前项并返回模板名称字符串的方法来动态选择模板的名称。 (official documentation)
以下是代码中“模板提供程序方法”的示例:
更新了数据绑定:
<ul data-bind="template: { name: getTemplateForSection, foreach: sections, as: 'obj' }"></ul>
更新了StateModel:
function StateModel(data) {
ko.mapping.fromJS(data, mapping, this);
this.getTemplateForSection = function(sectionModel) {
var section = sectionModel.section;
switch (section.Type()) {
case "Text":
return "Text-template";
default:
return "Error-template";
}
}
};
我把你的小提琴分开,并包括我提出的例子here。