1

我将此代码包含在 index.ejs 文件中

<script type="text/javascript">
    $(window).load(function()
    {
       $('#username').glDatePicker();
    });
</script>       

但是此 jquery 代码仅适用于第一个登录页面上的 id(在这种情况下为登录),对于其余页面它不起作用。请建议如何使其也适用于其他页面中的所有 id。

4

1 回答 1

2

jQuery load 事件只是触发一次,当窗口加载时,当它发生时,dom 中不存在一些模板,因为 ember 保存此模板,并在您转换到 dom 时附加到各自的路线。

由于您glDatePicker是自定义输入标签,换句话说就是自定义组件。我建议您创建自己的视图类。使用 ember 很容易:

App.DatePickerView = Ember.TextField.extend({
    didInsertElement: function() {
        this.$().glDatePicker();
    }
});

在您的模板中,您可以使用:

{{view App.DatePickerView valueBinding=date}}  

所以每个新DatePickerView创建的都将使用 jquery 插件。

如果你想要更多的语法糖,你可以使用Ember.Handlebars.helper

Ember.Handlebars.helper('date-picker', App.DatePickerView);

因此,在您的模板中,您可以只使用:

{{date-picker value=date}}

这是这个工作http://jsfiddle.net/marciojunior/3saXK/的小提琴

我希望它有帮助

于 2013-09-26T16:54:50.113 回答