以!text插件 - Backbone的形式获取价值

时间:2014-02-18 03:16:35

标签: backbone.js requirejs

我正在使用require.js的{​​text}插件将backbone项目的模板分成html文件。

以下是html文件:

<form>
<table style="padding-left:10px;">
    <tr valign="top">
        <td>
            <table>
                <tr>
                    <td>Enter the service number : <br /></td>
                </tr>
                <tr>
                    <td>
                        <input type="text" id="servicenumber" style="height:24px;"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="button" id="searchservice" value="Search" class="btn"/>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
</form>

这是观点:

define(["jquery" ,
"underscore" ,
"backbone" ,
"text!templates/Service/serviceTemplate.html",
"service"
],function($ , _ , Backbone, ServiceTagTem, Service){
   var service1 = new Service();

   var serviceTagLookUpView = Backbone.View.extend({
      initialize : function(){
      },
      event : {
        'click #searchservice' : 'searchService'
      },
      searchService : function(){
        console.log("this is "+$("#servicenumber").val());
        alert(1);
      },
      render : function(){
        var serviceTag = _.template(ServiceTagTem);
        this.$el.append(serviceTag);
      }
   });
   return serviceTagLookUpView;
});

我的网页中的表单视图,但是当我查看源代码时,没有任何形式,所以 console.log("this is "+$("#servicenumber").val());未在我的控制台中显示。有什么想法吗?

先谢谢。

1 个答案:

答案 0 :(得分:0)

您必须指定视图的el元素:

var serviceTagLookUpView = Backbone.View.extend({
  el: '#page', // give it an existing div in you page
  initialize : function(){
  },
  ...

这是一个demo,当您评论el: '#page',时,您的视图将无法呈现。