我正在尝试让 SPA 使用以下基本模型:
public class Owner
{
public int OwnerId { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<TodoItem> TodoItems { get; set; }
}
public class TodoItem
{
public int TodoItemId { get; set; }
[Required]
public string Title { get; set; }
public bool IsDone { get; set; }
public int OwnerId { get; private set; }
public virtual Owner Owner { get; set; }
public virtual ICollection<ActionItem> ActionItems { get; set; }
}
public class ActionItem
{
public int Id { get; set; }
public string Name { get; set; }
public int TodoItemId { get; private set; }
public virtual TodoItem TodoItem { get; private set; }
}
在我看来,我尝试了这个:
<div data-bind="foreach: ActionItem">
<div data-bind="attr:{id:Id}">
<span data-bind="text: Name"></span><br /> <!-- works -->
<span data-bind="text: TodoItem().Name"></span><br /> <!-- doesn't work -->
<span data-bind="text: TodoItem().Owner().Name"></span> <br /> <!-- doesn't work -->
</div>
</div>
我还尝试向包含所有者名称的 ActionItem 添加计算属性:
public string OwnerName
{
get { return this.TodoItem.Owner.Name; }
}
并调用:
<span data-bind="text: OwnerName"></span><br /> <!-- doesn't work -->
但是如果我添加一个不同的静态字符串并手动设置值:
public string SomethingElse { get; set; }
那么这工作正常:
<span data-bind="text: SomethingElse"></span><br /> <!-- works -->
我究竟做错了什么?
干杯