0

私にはユーザーモデルがあり、各ユーザーにはアーティストがいて、すべてのアーティストにはいくつかのアルバムがあります。ビューをレンダリングしてユーザープロファイルを表示しようとしています。ビューをレンダリングしようとすると、次のエラーが発生します。

Uncaught ReferenceError: albums is not defined
(anonymous function) b.template.c underscore-min.js:30 
Backbone.View.extend.render profile.js:13 
Backbone.Router.extend.profile router.js:62 
...

アルバムオブジェクトをテンプレートに渡していないようですが、そのテンプレートでもビューでもアルバム変数を使用していません。両方のコードは次のとおりです。

意見:

headerT = require('text!templates/user/profile_header.html');
  profileT = require('text!templates/user/profile.html');
  var profilesView = Backbone.View.extend({
  el: $('#main-container'),
  initialize: function(){
     this.template = _.template(profileT);                                                                                                  
     this.artist = this.model.get('artist');
  },

  render: function(){
     $(this.el).html(this.template({
       current_user: app.current_user,
       user: this.model.toJSON(),
       artist: this.artist.toJSON(),
     }));
     return this;
  },  
});     

レンプレート:

<div class="row">
    <div class="grid_3">
        <img src="<%=user.pict%>" class="frame" alt="">
        <span class="title">Username &ndash; <strong><%=user.username%></strong></span>
        <%if(current_user!=undefined && (current_user.get('is_admin') == true || current_user.get('id') == user.id)){%>
            <span class="title"><span class="icon user"></span> <a href="#/editProfile/">Edit Profile</a></span>
        <%}%>
        <%if(artist.active==true){%>
            <div><a href="#/artistProfile/">Go to Artist Profile</a></div>
        <%}%>
        <div class="separator"></div>
    </div>                                                                                                                                             
    <div class="clear"></div>
</div>    
4

1 に答える 1

0

テンプレートを保持していた変数の名前を変更したところ、機能しました。同じ名前の別の変数があり、別のファイルに別のテンプレート(アルバムが含まれている)を保持していて、代わりにそのテンプレートをロードしていました。別のファイルにあるのでスコープが違うと思っていましたが、そうではありませんでした。

于 2013-03-14T17:52:56.233 に答える