我有两个类型的活动是这样的:淘汰赛结合继承JavaScript对象
function Activity(type, name) {
this.Type = type
this.Name = ko.observable(name)
}
function MeetingActivity(name, place) {
Activity.call(this, 1500, name)
this.Place = ko.observable(place)
}
function TeachingActivity(name, place, teacherId) {
Activity.call(this, 1600, name)
this.Place = ko.observable(place)
this.TeacherId = ko.observable(teacherId)
}
,并试图结合不同类型的活动,一些像这样的容器:
Activity:
<select data-bind='value: ActivityTypeId'>
<option value='1500'>Meeting</option>
<option value='1600'>Teaching</option>
</select>
<div data-bind='if: ActivityTypeId()==1500'>
<div data-bind='with: Activity'>
<span data-bind='text:Name'></span>
<span data-bind='text:Place'></span>
</div>
</div>
<div data-bind='if: ActivityTypeId()==1600'>
<div data-bind='with: Activity'>
<span data-bind='text:Name'></span>
<span data-bind='text:Place'></span>
<span data-bind='text:TeacherId'></span>
</div>
</div>
我写this fiddle得到事情做完了,但没有运气,我做错了什么?
是的,奇怪的错误: “未捕获类型错误:无法处理绑定 ”值:函数(){返回} ActivityTypeId“ 消息:this.Activity是不是一个函数” 我双重检查this.Activity在视图模型中定义 – user3222589
如何定义'ActivityTypeId'? –
Knockout似乎是一种错误,它在'绑定'时处理'if'。如果你使用'Activity'去掉'',只需使用'text:Activity()。Name/Place/TeacherId'就可以了。 – haim770