到目前为止,我正在使用枚举呈现按钮,然后根据类型使用不同的HTML。就像这样,
export interface control {
type: controlType;
}
export enum controlType {
button,
switch,
select
}
然后我可以这样称呼,
<!--- ko: if: $data.type === 0 -->
PUT CODE HERE
<!-- /ko -->
我正在尝试通过使用对象来帮助优化,然后在另一个文件中呈现代码视图。我无法完全正常工作,我们将不胜感激。到目前为止,我有
export interface control {
type: {
button: 'folder/button.html',
switch: 'folder/switch.html',
select: 'folder/select.html'
}
}
然后我以为我可以使用
<!-- ko compose: { view: $data.type } --> <!-- /ko -->
那不起作用,我被卡住了。
答案 0 :(得分:0)
interface
仅用于在构建时检查您的类型。由于您的type
对象是在界面中定义的,因此button: 'folder/button.html',
和其他对象在运行时都不存在,除非,您为$data.type
分配的对象与{ {1}}。
相反,您可以将type
定义为字符串controlType
:
enum
现在,您可以创建export enum controlType {
button = 'folder/button.html',
switch = 'folder/switch.html',
select = 'folder/select.html'
}
export interface control {
type: controlType;
}
类型的对象,例如:
control
这会强制const $data: control = {
type: controlType.button
}
仅具有3个可能的值,并允许您像这样使用它:
$data.type