【问题标题】:Creating a model clears the screen创建模型清除屏幕
【发布时间】:2014-07-08 10:09:13
【问题描述】:

这是我制作的代码,这是一个包含姓名和电话号码并提交的表单 按钮和一个按钮,用于导航到名为 formentries 的页面以显示条目。我创建了一个视图并编写了一些 HTML 内容,并在输入和提交时单击了条目,一个警报框显示了输入。我需要创建一个模型、集合(以及另外 1 个视图)以在不同页面上显示所有条目。但是当我创建一个模型时

   FormView = backbone.Model.extend({
      defaults: {
           First Name: "Unknown",
           Phone Number: "Not Defined
      }
   });

索引页上的表单消失了。

剩下的代码是

 <html>
 <meta charset="utf-8">
 <title>BackboneJs Tutorial</title>
 <head>

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-

1.4.2.min.css">

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
<script src="underscore.js"></script>
<script src="backbone.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone-
 localstorage.js/1.0/backbone.localStorage-min.js" type="text/javascript"></script>  

</head>
<body>

<div id="form_container">a</div>
<script type="text/template" id="form_template">
<label class="ui-hidden-accessible"><b>First Name</b></label>
<input type="text" id="input_name" placeholder="First Name"/>
<label class="ui-hidden-accessible"><b>Phone Number</b></label>
<input type = "text" id="input_phonenumber" placeholder="Phone Number" />
<input type="button" id="search_button" value="Search" />
<a href="#/formentries" class="ui-btn ui-corner-all ">Form Entries</a>
</script>




 <script type="text/javascript">

 FormView = Backbone.View.extend({
    initialize: function(){
        this.render();
        alert("DOM Ready.!!");
    },
    render: function(){
        // Compile the template using underscore
        var template = _.template( $("#form_template").html(), {} );
        // Load the compiled HTML into the Backbone "el"
        this.$el.html( template );
    },
    events: {
        "click input[type=button]": "doAction"
    },
    doAction: function( event ){
        // Button clicked, you can access the element that was clicked with 
    event.currentTarget
        alert( "Form Inputs are " + $("#input_name").val() +" and " + 
    $("#input_phonenumber").val() );
     }
  });

 var form_view = new FormView({ el: $("#form_container") });

</script>
</body>
</html>

【问题讨论】:

  • 请查看默认对象字面量中的字段名称:“First Name”不是有效的变量名称。

标签: javascript html backbone.js


【解决方案1】:

@mrak 是对的 - 将 First NamePhone Number 更改为 First_Name""Phone_Number"

通用指针

当某些 JS 奇怪地停止执行您的 JS 的其他看似无关的部分时,它表明解析时出现错误。 V8 解释器(至少在 webkit 中)只是停止并且不执行其余部分。如果您打开 DevTools,控制台应该会将您引导至错误。

忠告

在这种情况下,请记住所有 JS 对象都是关联数组,并且有一些规则管理数组键中的字符。请参阅Valid javascript object property names - 点表示法. 和括号表示法[] 之间存在一些差异。为了安全起见,请使用老式规则:避免使用特殊字符并使用下划线作为空格。也使代码看起来更好看!

【讨论】:

  • 在发布问题后,我自己将姓名更改为名字和电话号码,感谢您的快速浏览。我也被困在一个我对如何继续感到困惑的地方,我希望表单条目按钮必须打开下一页并显示条目。我制作了一个集合,还有 1 个视图,其中 id 是 form_listing 的
    。我还制作了一个路由器,其中“”路由执行一个功能并引发一个警报框,但是如何导航到其他页面太顺利,因为我正在使用 jquery mobile。任何教程或
  • 任何教程帮助..?? @Sharadh
  • 您不太可能在此处获得如此详细的演练。试试这个stackoverflow.com/questions/21597910/…
  • 我可以给你看我目前制作的导航代码吗?>??
  • 请尽您所能调试代码,阅读官方文档,如果仍然无法解决,请发布不同的问题仅使用相关代码,您所面临的具体问题和社区肯定会有所帮助......随着您的进行更改问题,也不是提出大问题,这不是一种好的形式。干杯!
猜你喜欢
相关资源
最近更新 更多
热门标签