Следующий java-скрипт определяет объект MyViewModel со свойством "text" и функцией "save".
<script type="text/javascript">
function MyViewModel() {
this.text = ko.observable('');
}
MyViewModel.prototype.save = function () {
alert(this.text()); // Works fine
var data = ko.ToJSON(this); // Error: Object doesn't support this property or method ?
$.ajax({
type: 'POST',
url: '/Person/Save',
data: data,
contentType: 'application/json',
success: function (data) {
alert(data);
}
});
};
</script>
<script type="text/javascript">
$(function () {
var viewModel = new MyViewModel()
ko.applyBindings(viewModel);
});
</script>
И определена следующая кнопка:
<button data-bind="click: save">SAVE</button>
Результат нажатия кнопки:
- Доступ к свойству с помощью this.text() отлично работает
- Преобразование объекта java-скрипта в объект JSON: ko.ToJSON(this) не работает и выдает ошибку: «Ошибка: объект не поддерживает это свойство или метод»
Вероятно, что-то тривиальное отсутствует или неправильно, но я не вижу этого. Какие-нибудь советы ?
toJSON
, а неToJSON
(Knockout полностью поддерживает этот шаблон, вы только что допустили опечатку в своем коде). - person Sean Vieira   schedule 03.12.2011