在渲染之前添加元素。$ el

时间:2013-09-05 11:32:48

标签: marionette

我有以下模板:

<a data-rel="back" data-role="button" data-icon="delete" data-iconpos="notext" class="ui btn-right" data-theme="e"></a> <p id="msg"></p>

从以下视图加载:

define(['backbone', 'marionette', 'jquery', 'jquerymobile', 'hbs!templates/Popup'],
function (Backbone, Marionette, $, jqm, template) {
    return Backbone.Marionette.ItemView.extend({
        attributes: function() {
            return {
                // For dialogs to work correctly, url will need to be unique
                'id' : 'popupMsg',
                'data-role': 'popup',
                'class': 'ui-content'
            };
        },
        template: template,
        initialize: function() {
            _.bindAll(this);
        },
        onBeforeRender: function(){
            this.$el.find("#msg").text("{{$ message}}");
        }
    });
});

我尝试在 OnBeforeRender 事件中添加上面的代码,在模板的 #msg 元素中添加一些文字。原因是我希望在呈现视图之前传递一个字符串以便从把手进行本地化。

这可能吗?

由于

1 个答案:

答案 0 :(得分:0)

不幸的是,在呈现视图之前,#msg元素将不存在,因此尝试在onBeforeRender中设置其文本将无效。

为什么不能将把手表达仅仅作为模板的一部分?