0

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

    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">

这有效。

如何访问数据?

4

1 回答 1

3

我想你想要

profileStudentPersonalDetails().StudentNumber

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

于 2013-04-22T12:59:23.997 回答