Knockout: Push-значение в наблюдаемом массиве с динамическим ключом - PullRequest
0 голосов
/ 22 января 2019

Я хочу добавить push-значение в массив с динамическим ключом. Я использую этот код ниже:

this.customOptionVal.push({name:value});

this.customOptionVal is ko.observableArray ()

Вывод вышеуказанного кода:

0: {name: "stack"}

Я хочу получить такой вывод:

mykey: {name: "stack"}

Как это сделать?

1 Ответ

0 голосов
/ 22 января 2019

Если вы можете использовать простой наблюдаемый, а не observableArray (поскольку массивы всегда будут использовать индексы, а не настраиваемые ключи), вы можете установить, что customOptionVal является наблюдаемым объектом: customOptionVal = ko.observable({})

Теперь выможете получить доступ к объекту внутри наблюдаемого с помощью customOptionVal(), затем вы можете добавить свой ключ в этот объект, что-то вроде: customOptionVal()[yourKeyHere] = {name: "stack"}.

См. Ниже для лучшего примера

var customOptionVal = ko.observable({});
customOptionVal()['myKey'] = {name:"stack"};

console.log(customOptionVal())
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
...