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');