从对象内的对象获取数据

时间:2013-04-22 12:55:38

标签: javascript knockout.js

嗨,我正在学习淘汰赛,我正面临着一个我似乎无法理解的问题。 我有这个对象:

    var studentPersonalDetails = ko.observable();
    var isInitialized = false;

    var vm = {
        //bindable
        title: ko.observable('Profile'),
        dataLoading: ko.observable(false),
        hasErrors: ko.observable(false),
        errorMessage: ko.observable(''),

        //data
        profileStudentPersonalDetails: studentPersonalDetails,      

        //operations
        activate: activate

    };

    return vm;

profileStudentPersonalDetails相当于服务器上的这个C#对象:

    public int? StudentNumber { get; set; }
    public string Supervisor { get; set; }
    public bool CanEdit { get; set; }
    public string PersonId { get; set; }     
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string LastName { get; set; }
    public string FullName { get; set; }

并且是从服务填充的。我的问题是我知道如何从这个对象访问数据,所以我可以在html视图上显示它。

我试过这个版本:

<strong data-bind="text: StudentNumber">
<strong data-bind="text: profileStudentPersonalDetails.StudentNumber">

但是非似乎工作。数据以正确的方式填充到对象中我确定并且我能够从数据中访问其他字段,例如标题:

<strong data-bind="text: title">

这很有效。

如何访问数据?

1 个答案:

答案 0 :(得分:3)

我想你想要

profileStudentPersonalDetails().StudentNumber

可观察性是功能。要获取它们代表的对象,您需要调用该函数。然后,您可以从函数的结果中访问该属性。