Как выполнить функцию внутри свойства json? - PullRequest
1 голос
/ 10 марта 2011

Я возвращаю этот json с сервера:

{
    "Id": 0,
    "Name": ko.observable('New Product'),
    "PurchasePrice": 0.0,
    "DownPayment": 0.0,
    "TotalPayment": 0.0,
    "MortgageInsurance": 0.0,
    "PurchaseOrRefinance": null,
    "Client": null,
    "MonthlyCosts": null,
    "ClosingCosts": null,
    "FirstLien": null,
    "SecondLien": null
}

Я получаю его, используя jQuery.getJson, например:

function addProduct(){
    $.getJSON('@Url.Action("GetNewProduct","Product")',function(data){
        viewModel.products.push(data);
    });
    viewModel.productSaved(false);
    viewModel.product(products[products.length - 1]);

}

Однако кажется, что код никогда не запускается.Это происходит только тогда, когда я возвращаю функцию в json, если я удаляю функцию, все работает нормально.Есть ли способ решить это?

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Должно быть так>

Верните

{"Id":0,"Name":'New Product',"PurchasePrice":0.0,"DownPayment":0.0,"TotalPayment":0.0,"MortgageInsurance":0.0,"PurchaseOrRefinance":null,"Client":null,"MonthlyCosts":null,"ClosingCosts":null,"FirstLien":null,"SecondLien":null}

и сделайте так>> 1006 *

    function addProduct(){
        $.getJSON('@Url.Action("GetNewProduct","Product")',function(data){
            data.Name = ko.observable(data.Name);  
            viewModel.products.push(data);
        });
        viewModel.productSaved(false);
        viewModel.product(products[products.length - 1]);

    }
2 голосов
/ 10 марта 2011

Сбой анализа ваших данных, поскольку

{"Name":ko.observable('New Product') }

на самом деле не является JSON.Вы можете передавать только базовые данные, такие как строки / числа / объекты через JSON.См. http://www.json.org/

Вы можете рассмотреть вызов jQuery.ajax () с dataType, установленным в «script».

В противном случае вам нужно инициализировать переменные в функции обратного вызова или в коде серверачто может быть даже более чистым подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...