2017-04-14 74 views
1

我想列出我的數據來選擇的選項。我使用的把手骨幹jquery requireJS。把手選擇列表

這是我的模板

<select id="userSelect"> 
<option value="" selected="selected">Kullanıcı Seçiniz</option> 
{{#each users}} 
<option value='{{userID}}'>{{username}}</option> 
{{/users}} 
</select> 

我查看

var users = new User(); 
var SelectUserList = Backbone.View.extend({ 
    model: User, 
    el:'.page', 
    render:function(users) 
    { 
     var template = Handlebars.compile(SelectUserList); 
     var html = template({users:users.toJSON()}); 
     $("#userSelect").html(html); 
     this.$el.html(SelectUserList); 
     return this; 

    } 
}); 

return { 
    users:users, 
    SelectUserList:SelectUserList 
}; 

而且我Router.js

user: function() { 
     var spinner = new Spinner(); 
     $('body').after(spinner.spin().el); 
     var users = new Users(); 
     var userSelect = new UserSelectList.SelectUserList(); 
     users.fetch({ 
      contentType: "application/json", 
      error: function() { 
       console.log("error"); 
      }, 

      cache: false, 
      success: function (m_users) { 

       userSelect.users=m_users; 
      userSelect.render(UserSelectList.users); 
      disposeView(new UserSelectList.SelectUserList().render()); 

       } 

     }); 

DisposeView功能

function disposeView(view) { 
    var current = this.currentView; 
    if (current) current.close(); 
    current = this.currentView = view; 
    current.delegateEvents(); 
    return current; 
} 

而我有這個錯誤My Error

如何解決?我的錯在哪裏? 謝謝

回答

0

您已將您的視圖命名爲SelectUserList。在你看來,你試圖編譯SelectUserList(這是你的觀點不是模板字符串),但你想要傳遞你的模板。通常會有類似的東西;

define(['text!templates/my_tempalte.hbs'], 
    function(MyTemplateHbs){ 
    var users = new User(); 
    var SelectUserList = Backbone.View.extend({ 
     model: User, 
     el:'.page', 
     render:function(users) 
     { 
      var template = Handlebars.compile(MyTemplateHbs); //pass the tempalte 
      var html = template({users:users.toJSON()}); 
      this.$el.html(html); 
      return this; 

     } 
    }); 

    return { 
     users:users, 
     SelectUserList:SelectUserList 
    }; 
)}; 
+0

我編輯了這個解決辦法,但現在同樣的異常錯誤「各不相匹配的用戶 - 3:7」 – real

+0

哦,只要看到爲好{{#each我需要結束{{/每個}}而不是{{/ users}} – Quince

1

由於您在{{/}}之後提供了不正確的幫助程序名稱,因此出現錯誤。

{{#each users}} 
    <option value='{{userID}}'>{{username}}</option> 
{{/users}} 

應更正爲

{{#each users}} 
<option value='{{userID}}'>{{username}}</option> 
{{/each}} 
+0

我編輯了這個語法錯誤,但選擇填充null.But console.log返回我的數據。 http://pasteboard.co/5xvUGvaor.png – real

+0

你是SelectUserList視圖的渲染函數需要用戶,你不會在渲染時將它們傳遞到視圖中,也不會在初始化時進行查看。這就是你選擇任何東西的原因。 –