Backbone:将变量传递给附加模板

时间:2014-04-15 14:59:44

标签: javascript ruby-on-rails backbone.js

如何在模板上的附加模板中传递变量。我正在添加flash消息以显示错误;

P.S是骨干的新手

这是故障代码;

error: function(user, response){
    //create flash message with errors and render new page
    var failureErrors = $.parseJSON(response.responseText).errors;
    var errorView = new Skymama.Views.ErrorMessages();                      
    $("#error_messages").append(errorView.render().el({errors: failureErrors}));
}

这是模板;

<div class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">
        <i class="icon-remove"></i>
    </button>
    <div id="error_list">
        <ul>
            <%  errors.each(function(error){ %>

            <% }); %> 
        </ul>
    </div>
    <br>
</div>

1 个答案:

答案 0 :(得分:1)

在你的代码中,我看到你试图将params传递给el - 这不是一个函数。

您只需在ErrorMessages视图的render方法中添加一个参数即可获取错误:

//in your Skymama.Views.ErrorMessages...

render: function (templateData) {
    this.$el.html(this.template(templateData));
}

并在您的错误处理程序中:

$("#error_messages").append(errorView.render({errors: failureErrors}));

有各种方法可以改善这种情况,例如:您可以将failureErrors作为集合并将其传递给errorView,并使用集合事件来处理呈现。