0

在 html 页面中,我有一个视图模型

 AppViewModel = {
        people : ko.observableArray([
        {
            fName : 'john'
            lName :'conor'
        }, {
            city  : 'dallas'
        }, {
            state : 'texas'
        } ]),


    };

我从服务器获取 json 数据,格式为

{
                fName : 'john'
                lName :'conor'
            }, {
                city  : 'dallas'
            }, {
                state : 'texas'
            }

我希望将 json 数据添加到数组(推送)中,例如 AppViewModel.people.push(ko.mapping.fromJS(jsondata, viewModel)) 但它不起作用。有任何想法吗?

4

1 回答 1

3

如果 jsonData 是一个数组,则此方法有效。

ko.utils.arrayForEach(jsondata, function(item){
    AppViewModel.people.push(item);
});

编辑

您可以使用jQuery.isEmptyObject检查对象是否为空。

if(jQuery.isEmptyObject(jsonData) == false)
    AppViewModel.people.push(jsonData)

或者你可以使用这个版本的 isEmpty :

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

我希望它有所帮助。

于 2013-08-13T16:13:57.253 回答