Javascript 如何向Ember CLI应用程序添加日期选择器或任何常规jQuery插件

Javascript 如何向Ember CLI应用程序添加日期选择器或任何常规jQuery插件,javascript,jquery,ember.js,ember-cli,Javascript,Jquery,Ember.js,Ember Cli,因此,我试图将pikaday日期选择器添加到Ember CLI应用程序中 在我的/app/views/calendar view.js中有以下内容 import Ember from 'ember'; export default Ember.TextView.extend({ modelChangedValue: function(){ console.log(this.get('value')); }.observes("value"), didI

因此,我试图将
pikaday
日期选择器添加到Ember CLI应用程序中

在我的
/app/views/calendar view.js中有以下内容

import Ember from 'ember';

export default Ember.TextView.extend({
    modelChangedValue: function(){
        console.log(this.get('value'));
    }.observes("value"),

    didInsertElement: function(){
        currentYear = (new Date()).getFullYear();
        formElement = this.$()[0];
        picker = new Pikaday({
            field: formElement,
            yearRange: [1900,currentYear+2]
        });
        this.set("_picker", picker);
  },

    willDestroyElement: function(){

        picker = this.get("_picker");

        if (picker) {
            picker.destroy();
        }

        this.set("_picker", null);
  }

});
我的主要问题是如何将插件本身添加到ember cli中

这是pikaday的github链接:

更具体地说,我认为这一部分可能很重要,因为Ember CLI使用AMD:


那么如何将插件本身添加到ember cli中呢?

更新

写了这个答案之后,Ember插件API变得更加有用,如果您正在构建一个添加到常规js插件的Ember组件/mixin/other类,它将是一个完美的选择

定期安装 在“定期安装”的情况下,你希望插件可以通过你的应用程序使用,并且无论发生什么情况,都可以包含在应用程序的有效负载中。为此,请将文件/包添加到项目的
供应商
目录中。有两种立即可用的方法:使用或简单地将文件或包保存在目录中

1)鲍尔

使用Bower通过终端安装软件包,如:

bower install ember-validations
或者,如果没有可用的easy install Bower软件包,请在Bower.json文件中:

{
  "name": "app",
  "dependencies": {
    "chosen": "https://github.com/harvesthq/chosen/releases/download/v1.1.0/chosen_v1.1.0.zip"
  }
}
2)写入文件

您不必使用Bower将文件和目录添加到
供应商
目录中。你可以在
供应商
目录中的任何地方创建一个文件,复制并粘贴插件javascript到其中并保存,它仍然可以导入到你的应用程序中

3)使其在应用程序中可用

无论您使用何种方法创建和保存插件脚本,您仍然必须将文件直接导入应用程序。您可以在
Brocfile.js
中执行此操作。在
module.exports=app.toTree()之前添加一个带有文件路径的导入(如果是bower安装的包,则为主文件)

有更多的信息在网页上

Polyfill或其他非必需插件 在某些情况下,您不希望总是在应用程序中加载/运行脚本。例如,您仅在用户使用IE时加载大型文件。在这种情况下,您可以在
public/assets
中创建一个目录来保存javascript文件,并使用jQuery的
$.getScript()
方法在初始值设定项中或在您的Ember应用程序中的其他地方加载它们


关于这种情况,我回答了一个类似的问题。

我知道这是一个古老的答案,但它仍然有效!使用fastboot,也同样如此。当您只想在组件中加载一个用于单一目的的脚本,而不需要该脚本就可供应用程序使用时,它会很有帮助。另外,您不必经历资产编译的噩梦。谢谢
app.import('vendor/ember-validations/index.js');
app.import('vendor/chosen/chosen.jquery.min.js');