无法在ember js中使用jquery函数

时间:2013-09-26 14:53:56

标签: jquery ember.js

我在index.ejs文件中包含了这段代码

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

但是这个jquery代码只适用于第一个登录页面上的ID(在这种情况下是登录),对于其它不可用的页面。请建议如何使其适用于其他页面中的所有ID。

1 个答案:

答案 0 :(得分:2)

jQuery加载事件,只是三次加权,当窗口加载时,当它发生时,dom中不存在一些模板,因为ember保存了这个模板,只是当你做一个dom时附加在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/

的小提琴

我希望它有所帮助