gpt4 book ai didi

ember.js - 如何在 View 完成渲染更改后运行函数

转载 作者:行者123 更新时间:2023-12-03 06:22:38 25 4
gpt4 key购买 nike

Possible Duplicate:
Using Ember.js, how do I run some js after a view is rendered?

我使用 JWPlayer 在我的网站上显示视频,JWPlayer 使用 javascript 创建查看器。

我必须在隐藏 View 更改为显示后运行 JWPlayer 脚本。

jwplayer('video_space').setup({
'flashplayer': 'player.swf',
'file': 'http://content.longtailvideo.com/videos/flvplayer.flv',
'controlbar': 'bottom',
'width': '470',
'height': '320'
});

我将 View 与 Controller 上的值绑定(bind)

<script type="text/x-handlebars" >
{{#view Food.previewView }}
Video session
<div {{bindAttr class="showPreview"}}>
<div id='video_space'>Video Loading...</div>
</div>
{{#view SC.Button target="Food.appController" action="show"}}
show
{{/view}}
{{/view}}
</script>

我的所有 Controller 和 View 的 JavaScript

Food = Ember.Application.create();

Food.appController = Ember.Object.create({
showVideo: false,

show: function(){
Food.previewView.set('showVideo', true);
}
});

Food.previewView = Ember.View.extend({
showVideoBinding: 'Food.appController.showVideo',

showPreview: function() {
return this.get('showVideo') ? "show" : "hide";
}.property('showVideo')
});

如果我在更改“showVideo”变量时运行 JWPlayer 脚本,视频将出错,因为 $('#video_space') 仍然隐藏。

Emberjs 有一些委托(delegate)方法,例如“afterViewChange”或“viewDidChange”?

测试代码 http://jsfiddle.net/apirak/Ay6Fh/

最佳答案

重写 Ember.View.didInsertElement 函数并将您的自定义项放入其中。

http://docs.emberjs.com/#doc=Ember.View&method=didInsertElement&src=false

关于ember.js - 如何在 View 完成渲染更改后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com