Я использую комбинацию Knockout.js + плагин сопоставления Knockout + jQuery в многофункциональном веб-клиенте, который использует JSON из RESTful API. .
Мне нужно руководство о том, как работать с нулевыми значениями в моей модели представления. Вот мой сценарий и проблема, с которой я столкнулся:
Большинство членов данных, возвращаемых REST API, обнуляются. Чтобы учесть это, я передаю плагину сопоставления образец JSON с нулевыми значениями:
um.jsonMaps.campaign = {
"priority": null,
"recipientListId": null,
"autoPrepare": null,
"timeToSend": null
}
Я делаю начальную привязку следующим образом:
this.model = ko.mapping.fromJS(um.jsonMaps.campaign);
Вот некоторые данные из вызова API:
var data= {
"priority": 95,
"recipientListId": "a2aac72a-59f6-45da-a636-a48cc2b20137",
"autoPrepare": false,
"timeToSend": null
}
... который связан следующим образом:
ko.mapping.fromJS(data, this.viewModel.model);
Проблема заключается в том, что если пользователи изменяют или касаются любого из элементов пользовательского интерфейса, привязанных к этим данным, они неявно превращают член данных в модели в строковый литерал в кавычках. Таким образом, целое число 95 становится "95", если пользователь добавляет текст и удаляет его. И если в пользовательском интерфейсе коснуться значения, которое было пустым из API, оно становится "" (например, пустой строкой).
Мне нужно, чтобы целые числа и нули оставались целыми и нулевыми после редактирования.