我有一個父模型是這樣的無法訪問內與
function VM() {
var self = this;
self.MyPage = ko.observable()
}
var vm = new VM()
淘汰賽方法環路是那麼我的孩子模型是這樣的。
var page = function(parent) {
var self = this
self.Info = ko.observable()
self.LoadData = function(){
self.GetNext()
}
self.GetNext = function(){
var url = 'Questions/GetNext'
var type = 'GET'
ajax(url , null , self.OnGetNextComplete, type)
}
self.OnGetNextComplete = function(data){
self.Info(data.Payload)
}
self.AcceptedChoices = function(data,choiceId){
return in_array(choiceId,data.AcceptedChoices) ? 'selected' : ''
}
self.LoadData()
}
這是我如何使用它。
vm.MyPage(new page(vm))
ko.applyBindings(vm)
所有的工作暫時正常。現在要在頁面上使用這個孩子,我使用這樣的with binding
。
`<body data-bind="with:MyPage">`
這讓我在當前頁面上使用child。 接下來,我是這樣綁定的。
<div data-bind="foreach:Info">
<article>
<h2 data-bind="text:QuestionText"></h2>
<ul data-bind="foreach:Choices">
<li data-bind="text:ChoiceText,css:$parent.AcceptedChoices()"></li>
</ul>
</article>
</div>
這裏是信息JSON
{
"Choices": [{
"ChoiceId": 102,
"ChoiceText": "Not at all"
}, {
"ChoiceId": 103,
"ChoiceText": "Somewhat"
}, {
"ChoiceId": 104,
"ChoiceText": "Very important"
}],
"QuestionText": "My personal religious beliefs are important"
},{
"Choices": [{
"ChoiceId": 99,
"ChoiceText": "Never"
}, {
"ChoiceId": 100,
"ChoiceText": "Sometimes"
}, {
"ChoiceId": 101,
"ChoiceText": "Always"
}],
"QuestionText": "I am a leader"
},
{
"Choices": [{
"ChoiceId": 96,
"ChoiceText": "Never"
}, {
"ChoiceId": 97,
"ChoiceText": "Sometimes"
}, {
"ChoiceId": 98,
"ChoiceText": "Always"
}],
"QuestionText": "I manage time properly"
}
的問題是,它總是說$parent.AcceptedChoices
是不確定的。我已經使用root , parent[1] , parent[2]
等,但沒有任何工作。我怎樣才能做到這一點。
出於好奇,你有什麼反對的;字符? –
不,我從來沒有在JavaScript中使用分號仍然效果不錯 –