我有兩個類型的活動是這樣的:淘汰賽結合繼承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