Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 通过主干视图呈现模板html_Backbone.js_Backbone Views - Fatal编程技术网

Backbone.js 通过主干视图呈现模板html

Backbone.js 通过主干视图呈现模板html,backbone.js,backbone-views,Backbone.js,Backbone Views,我有一个包含三步向导的简单页面。基本上,用户填写一个文本框,单击next,这将加载下一个表单字段 我在模板中设置了所有HTML,并在主干视图中使用该模板 问题是主干网没有在模板内呈现HTML。我只是得到一个空白屏幕 这是我的模板: <script type="text/template" id="assessmentTitleTemplate"> <div id="titleDiv"> <label for="title">Title

我有一个包含三步向导的简单页面。基本上,用户填写一个文本框,单击next,这将加载下一个表单字段

我在模板中设置了所有HTML,并在主干视图中使用该模板

问题是主干网没有在模板内呈现HTML。我只是得到一个空白屏幕

这是我的模板:

<script type="text/template" id="assessmentTitleTemplate">

    <div id="titleDiv">
        <label for="title">Title:</label> &nbsp;&nbsp;<input type="text" />
    </div>

    <div id="choicesDiv" style="display: none;">
        <label for="choices">Choices:</label><input type="text" />
    </div>

    <div id="typeDiv" style="display: none;">
        <label for="types">Types:</label>
        <select name="type">
            <option>red</option>
            <option>blue</option>
            <option>green</option>
        </select>
    </div>

   <div id="directionControl">       
        <input type="button" value="Prev" /> &nbsp;&nbsp;<input type="button" value="Next" />
    </div>

</script>

您的代码是正确的,但您的
initialize
正文中缺少几个参数:

initialize : function () {
    this.render();  // it was this.render; before
}
您的代码没有调用该函数

此外,您的按钮缺少
class
标记,否则单击时它们将无法工作。添加此选项将使它们工作:

<input type="button" value="Prev" class="prev" /> &nbsp;&nbsp;<input type="button" value="Next" class="next" />


检查此项。

谢谢,这很有效,我也没有将行视图=新标题视图…或空div放入其中。作为一个小提示,我建议不要在
initialize
函数中进行渲染。它使与其他对象(如视图)的协调变得棘手,并且使测试更加困难。是的,将
initialize
render
解耦要好得多。根据我的经验,在实例化时使用
el
属性是一种不好的做法(我的意思是,这样做:
new Backbone.View({el:$(“…”)});
),除非它是非常主要的视图或特殊的东西。
<input type="button" value="Prev" class="prev" /> &nbsp;&nbsp;<input type="button" value="Next" class="next" />