使用文本字符串而不是带有 Knockout.JS 的索引号进行拼接



我想知道是否有任何方法可以使用 Knockout.js 使用常量或文本字符串而不是索引号进行拼接? 例如,数组的内容可能会改变,因此,我想使用 Array.splice(MyFile.specificTextString( 而不是 Array.splice(1(,这将删除数组中从索引 1 开始的所有字符串。

您可以使用ko.pureComputedindexOf来实现所需的结果:

const dataSource = ko.observableArray(
["alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta"]
);
const cutOffPoint = ko.observable("gamma");
const cutOffData = ko.pureComputed(function() {
const index = dataSource().indexOf(cutOffPoint());

return (index === -1)
? []
: dataSource().slice(0, index);
});
ko.applyBindings({ dataSource, cutOffPoint, cutOffData });
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<pre data-bind="text: JSON.stringify(dataSource())"></pre>
<input data-bind="textInput: cutOffPoint">
<pre data-bind="text: JSON.stringify(cutOffData())"></pre>

请注意,我使用的是slice而不是splice来防止更改原始数组。

相关内容

最新更新