backbone.js - Issues with inheritance in Backbone/Coffeescript -
so i'm starting new app using backbone/coffeescript. i'm using end of sinatra, coffeescript compiler default command line 1 creates js files. i'm trying create app there master class other classes inherit from. reason i'm getting few errors. here errors
typeerror: 'undefined' not object (evaluating 'n.replace') typeerror: 'undefined' not object (evaluating 'parent.prototype') typeerror: 'undefined' not constructor (evaluating 'new fileapp.uploaderview()') here base class
class fileapp.controller extends backbone.view template: _.template($('#fileapptemplate').html()) initialize: (office) -> @office = office @render() render: -> # attach view dom $('#fileuploaderapp').append(@$el) bindviews: (uploaderview, fileviewerview, filedetailview) -> @uploaderview = uploaderview @fileviewerview = fileviewerview @filedetailview = filedetailview here example of inheriting class
class fileapp.fileviewerview extends fileapp.controller template: _.template($('#fileviewtemplate').html()) # # render -> # render: -> @$el.html(@template) # append fileviewer div @renderfiles() # # createfiles -> # renderfiles: -> and here how .erb file loading each item , instantiating app.
<script id="namespacing"> //all backbone classes attach variable var fileapp={}; </script> <!-- underscrore/backbone --> <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script> <script src="/js/fileuploader/libs/file_app_view.js"></script> <script src="/js/fileuploader/libs/uploader_view.js"></script> <script src="/js/fileuploader/libs/file_detail_view.js"></script> <script src="/js/fileuploader/libs/file_model.js"></script> <script src="/js/fileuploader/libs/file_viewer_view.js"></script> <script src="/js/fileuploader/libs/file_view.js"></script> <div id="fileuploaderapp"></div> <script> $(document).ready(function(){ var app = new fileapp.controller(); // # create uploader var uploaderview = new fileapp.uploaderview(); // # create file viewer var fileviewerview = new fileapp.fileviewerview(); // # create file detail view var filedetailview = new fileapp.filedetailview(); app.bindviews(uploaderview, fileviewerview, filedetailview) }); </script> if can clarify issue that'd great.
try this
@$el.html(@template()) instead of
@$el.html(@template) also, want pass parameter template
@$el.html(@template(parameter1: 'value1', parameter2: 'value2')) usually in view have model, if model office, backbone model can do:
@$el.html(@template(var_referencing_office.tojson())) this example. don't know whether passing office view.
Comments
Post a Comment