Knockout.js 淘汰3.2:组件/自定义元素能否包含子内容?

Knockout.js 淘汰3.2:组件/自定义元素能否包含子内容?,knockout.js,knockout-components,Knockout.js,Knockout Components,我可以创建使用子标记的非空敲除组件吗 例如,用于显示模式对话框的组件,例如: 你确定要退出吗? 所有未保存的更改都将丢失 它与组件模板一起: X 取消 证实 产出: X 你确定要退出吗? 所有未保存的更改都将丢失 取消 证实 这在3.2中是不可能的,但是在下一个版本中是可能的,请参见和此 现在,您必须通过params属性将参数传递给组件 定义组件以期望内容参数: ko.components.register('modal-dialog', { viewModel: functi

我可以创建使用子标记的非空敲除组件吗

例如,用于显示模式对话框的组件,例如:


你确定要退出吗?
所有未保存的更改都将丢失

它与组件模板一起:


X
取消
证实
产出:


X
你确定要退出吗?
所有未保存的更改都将丢失

取消 证实
这在3.2中是不可能的,但是在下一个版本中是可能的,请参见和此

现在,您必须通过
params
属性将参数传递给组件 定义组件以期望
内容
参数:

ko.components.register('modal-dialog', {
    viewModel: function(params) {
        this.content = ko.observable(params && params.content || '');
    },
    template:
        '<div class="modal">' +
            '<header>' +
                '<button>X</button>' +
            '</header>' +
            '<section data-bind="html: content" />' +
            '<footer>' +
                '<button>Cancel</button>' +
                '<button>Confirm</button>' +
            '</footer>' +
        '</div>'
});

在新版本中,您可以使用
$componentTemplateNodes

ko.components.register('modal-dialog', {
    template:
        '<div class="modal">' +
            '<header>' +
                '<button>X</button>' +
            '</header>' +
            '<section data-bind="template: { nodes: $componentTemplateNodes }" />' +
            '<footer>' +
                '<button>Cancel</button>' +
                '<button>Confirm</button>' +
            '</footer>' +
        '</div>'
});
ko.components.register('modal-dialog'{
模板:
'' +
'' +
“X”+
'' +
'' +
'' +
“取消”+
“确认”+
'' +
''
});

另外,您可以手动构建最新版本的knockout以使用上面的代码。

谢谢您的回答,但这不是我想要的。我的目标是自然地使用标记子树,而不是使用基于参数的攻击。@Janfohe Edited,请检查Thank Max,
$componentTemplateNodes
正是我要找的。看看淘汰3.3-它有你想要的。
ko.components.register('modal-dialog', {
    template:
        '<div class="modal">' +
            '<header>' +
                '<button>X</button>' +
            '</header>' +
            '<section data-bind="template: { nodes: $componentTemplateNodes }" />' +
            '<footer>' +
                '<button>Cancel</button>' +
                '<button>Confirm</button>' +
            '</footer>' +
        '</div>'
});