我将此代码包含在 index.ejs 文件中
<script type="text/javascript">
$(window).load(function()
{
$('#username').glDatePicker();
});
</script>
但是此 jquery 代码仅适用于第一个登录页面上的 id(在这种情况下为登录),对于其余页面它不起作用。请建议如何使其也适用于其他页面中的所有 id。
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/的小提琴
我希望它有帮助