نوكوتجس :كو.توجسون (هذا) لا يعمل?
-
27-10-2019 - |
سؤال
جافا سكريبت التالية التي تحدد كائن ميفيوموديل مع خاصية "النص"وظيفة"حفظ".
<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>
النتيجة عند النقر على الزر:
- الوصول إلى خاصية باستخدام هذا.النص () يعمل بشكل جيد
- تحويل كائن جافا سكريبت إلى كائن جسون :كو.توجسون (هذا) لا يعمل ويلقي خطأ:"خطأ:الكائن لا يدعم هذه الخاصية أو طريقة"
ربما هناك شيء تافه مفقود أو خاطئ ، لكن لا يمكنني رؤيته.أي نصائح ?
المحلول
خروج المغلوب ليس لديه ToJSON
الطريقة-لديها toJSON
طريقة على الرغم من:
function MyViewModel() {
this.text = ko.observable('');
}
MyViewModel.prototype.save = function () {
alert(this.text()); // Works fine
var data = ko.toJSON(this); // Works fine too
$.ajax({
type: 'POST',
url: '/Person/Save',
data: data,
dataType: 'json',
success: function (data) {
alert(data);
}
});
};
نصائح أخرى
لقد حددت نموذج العرض الخاص بك كدالة (فئة ، إذا أردت): Genacodicetagpre
بدلاً من ذلك ، يجب أن تحدده على أنه var (كائن): Genacodicetagpre
يجب أن تجد ما يلي يعمل بشكل جيد: Genacodicetagpre
لا تنتمي إلى StackOverflow