以!text插件形式取值- Backbone

vwkv1x7d  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(189)

我正在使用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());没有显示在我的控制台中。

c3frrgcw

c3frrgcw1#

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

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

这里有一个demo,当你评论el: '#page',时,你看到的不会被渲染。

相关问题