我将参数传递给Knockout JS中的组件并遇到了这种行为。这是为了吗?
当我根据对具有observable的表达式的条件检查传递testParam1时,它返回被包装为计算的可观察函数而不是值的参数。
但是,对于没有任何可观察的表达式的条件检查,它可以正常工作。
ko.components.register('parent', {
viewModel: function(params) {
this.test = ko.observable(true);
ko.components.register('child', {
viewModel: function(params) {
console.log('testParam1:',params.testParam1);
console.log('testParam2:',params.testParam2);
},
template: '<div>Child Component</div>'
});
},
template: '<div>Parent Component</div><child params="testParam1: test() ? \'y\' : \'n\', testParam2: 1 ? \'y\' : \'n\'"></child>'
});
ko.applyBindings();
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<parent></parent>
&#13;