在 {{#each}} 之后调用代码已在 ember.js 中呈现
Calling code after {{#each}} has rendered in ember.js?
我试图在 Ember {{#each}}
标签完成循环遍历其项目后调用一些代码。我见过其他看起来相似的问题,答案总是在视图上实现didInsertElement
。这似乎对我不起作用,因为我正在尝试访问未使用视图呈现的 html 对象,因为它们位于{{#each}}
中。
这是我的html的样子。
<script type="text/x-handlebars" id="user">
{{#if isEditing}}
<div class="well">
{{partial 'user/edit'}}
<button {{action 'doneEditing'}} class="btn btn-default">Save</button>
<button {{action 'cancelEditing'}} class="btn btn-default">Cancel</button>
</div>
{{else}}
<button {{action 'edit'}} class="btn btn-default">Edit</button>
{{/if}}
</script>
<script type="text/x-handlebars" id="user/edit">
{{#view 'editor'}}
<div id="sList" class="btn-group-vertical" role="group">
{{#each s in model}}
<button class="btn btn-default">
{{s.theme}}
</button>
{{/each}}
</div>
{{/view}}
</script>
还有我的JavaScript
App.UserRoute = Ember.Route.extend({
model: function(params) {
return this.store.all('strength')
}
});
App.UserController = Ember.ObjectController.extend({
isEditing: false,
actions: {
edit: function(){
this.set("isEditing", true);
},
doneEditing: function(){
this.set("isEditing", false);
},
cancelEditing: function(){
this.set("isEditing", false);
}
}
});
App.EditorView = Ember.View.extend({
didInsertElement: function() {
//Do something to the button elements
}
});
当我尝试运行它时,一旦我点击编辑按钮并部分加载,didInsertElement
尝试访问按钮元素后,我在控制台中出现错误。就好像div 中的元素还没有渲染一样。那么我如何判断{{#each}}
是否完成了将元素插入到 html 中?我知道这可能会令人困惑,但任何和所有的帮助都是值得赞赏的。
安排 afterRender 队列中的代码在呈现视图内容后运行。
App.EditorView = Ember.View.extend({
didInsertElement: function() {
Ember.run.schedule('afterRender', function() {
this.$().find('button').each(function() {
// $(this) is a button in this function
});
}.bind(this));
}
});
相关文章:
- 强制模板刷新ember.js
- Ember.js-接口状态应该存储在哪里
- Uncaught TypeError:undefined不是函数-ember js
- 手动触发ember.js中的属性更改
- Ember.js Ember.View didRender event
- Ember.js Ember数据呈现双嵌套hasMany关系
- 限制对 Ember.js (Ember.Router) 中特定路由的访问
- Ember.js - Ember.js 车把内的视图有条件:视图未显示
- Node.js+Ember.js登录系统
- 在Ember.js Ember数据记录数组上迭代
- 在Ember JS+Ember Data中使用字符串而不是ID的URL
- ember.js ember.使用多个选项选择值绑定
- Ember.JS: Ember-Objects和它们被导出到的位置
- 当测试Ember.js (ember-cli) App时,在teardown中获取“App is not defined
- ember.js/ember-data期望从post请求得到什么样的响应?
- 如何检查模型是否已更改但尚未保存到服务器?(Ember.js / Ember-data)
- Ember.js/Ember-Data:使用RESTAdapter从多个端点加载数据
- Ember.js ember-plupload drag&drop
- Ember.js ember-data and cross-domain ajax requests
- Ember.js / Ember-i18n:是否可以从 Handlebars 模板中迭代翻译文件中的属性