gpt4 book ai didi

javascript - KnockoutJS 调用为 foreach 中的每个元素计算

转载 作者:行者123 更新时间:2023-12-02 17:14:19 26 4
gpt4 key购买 nike

我有一个无法解决的问题..我在 JSbin 上的示例:http://jsbin.com/wiwuwepe/1/edit

基本上,在

    <script id="QuestionTemplate" type="text/html">
<div class="well">
<div class="form-group">
<div class="col-md-5">
<p class="form-control-static" data-bind="text: QuestionText"></p>
</div>
</div>
<div class="form-group">
<div class="col-md-5">
<!-- THIS IS WHERE I WANT COMPUTED FOR EACH SURVEYQUESTION -->
<p class="form-control-static" data-bind="text: QuestionTypeTemplate"></p>
</div>
</div>
</div>

QuestionTypeTemplate 显示未定义,尽管其模型为

     function SurveyQuestion(data) {
var self = this;

self.QuestionText = ko.observable(data.QuestionText);
self.QuestionType = ko.observable(data.QuestionType);
self.QuestionAnswers = ko.observableArray(data.QuestionAnswers);
self.QuestionTypeTemplate = ko.computed(function () {
/*
if( self.QuestionType() == 0) {
return "radio";
} else if (self.QuestionType() == 1) {
return "checkbox";
}
*/
return "This is what i want";
}, self);
}

请检查 jsbin 上的完整代码。只需取消 QuestionTemplate script/html 中该 1 行的注释即可。当我将我的示例与 http://knockoutjs.com/examples/cartEditor.html 进行比较时,我真的找不到很大的区别,为什么它有效,为什么我的无效。

最佳答案

在您的调查功能上

而不是这个

self.SurveyQuestions = ko.observableArray(data.SurveyQuestions);

你需要使用这个

var questions = [];
for(i = 0 ; i<data.SurveyQuestions.length ; i++) {
questions.push(new SurveyQuestion(data.SurveyQuestions[i]));
}
self.SurveyQuestions = ko.observableArray(questions);

关于javascript - KnockoutJS 调用为 foreach 中的每个元素计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com