我正在尝试使用 emberjs 和 Foundation 4(现在使用 zepto 框架),但一旦我将 emberjs 添加到我的 application.js 中,基础代码就停止工作。包含的顺序有问题吗?
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require events
//= require foundation
//= require rails.validations
//= require rails
//= require gmaps4rails/gmaps4rails.base
//= require gmaps4rails/gmaps4rails.googlemaps
//= require handlebars
//= require ember
//= require ember-data
//= require teammngt
//= require_self
TeamMngt = Ember.Application.create();
$(document).foundation();
TL;DR
TeamMngt = Ember.Application.create({
ready: function() {
Ember.run.next(this, function(){
$(document).foundation();
});
}
});
OR
创建应用程序后添加:
TeamMngt.ApplicationView = Ember.View.extend({
didInsertElement: function() {
Ember.run.next(this, function(){
$(document).foundation();
})
}
});
Note:将 TeamMngt 更改为您设置的任何内容= Ember.Application.create();
一些解释:
加载应用程序模板后,didInsertElement
事件被解雇。但放置$(document).foundation()
仅此是行不通的(我猜东西的加载/绑定方式或其他方式)。所以我做了:
didInsertElement: function() {
setTimeout(function() {
$(document).foundation();
}, 0);
}
有一个setTimeout()
0ms 看起来很奇怪,所以我想有更好的方法。因此,导致放$(document).foundation()
inside Ember.run.next()
.
Credits: Zaxnyd
参考: Ember.js Ember.View didRender 事件 https://stackoverflow.com/questions/11724350/ember-js-ember-view-didrender-event
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)