I'm trying to create a simple component in Knockout (3.3.0):
ko.components.register('test', {
viewModel: function() {
this.test = 'hello'
},
template:
`<span data-bind='if: 1, text: test'></span>`
});
ko.applyBindings();
See fiddle.
Now when I instantiate a <test></test> somewhere else, I get an error:
Multiple bindings (if and text) are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.
Is this really not possible? This would be like the most basic functionality to incorporate if you ask me. I know I could use <!-- ko text --> but what about setting other attributes like src and using if at the same time?
OK I found the (or at least, one possible) solution: Use
<!-- ko if --><!-- /ko -->. This way, the template can be written likeI still don't think it's perfect, in Vue I would just do
<span v-if='1'>{{text}}</span>bam done, but I guess not everything in this world can be as awesome as Vue...