meteor中路由器上调用服务器端方法
我有一条路线,上面写着like/video/:\u id/:slug 现在在这条路线上,我想从_id获取视频url,现在我想取消该url,我想将该url作为源发送到html中的视频元素 我试着像下面一样,但它不工作meteor中路由器上调用服务器端方法,meteor,iron-router,Meteor,Iron Router,我有一条路线,上面写着like/video/:\u id/:slug 现在在这条路线上,我想从_id获取视频url,现在我想取消该url,我想将该url作为源发送到html中的视频元素 我试着像下面一样,但它不工作 this.route("video",{ path:'/video/:_id/:slug', waitOn: function() { Meteor.subscribe('singleVideo', this.params._id);
this.route("video",{
path:'/video/:_id/:slug',
waitOn: function() {
Meteor.subscribe('singleVideo', this.params._id);
},
onBeforeAction: function () {
},
data:function(){
Session.set("currentVideoId",this.params._id);
var video;
video= Videos.findOne({_id: this.params._id});
Meteor.call("videoData",video.videourl,function(er,da){
Session.set('vurl',da);
});
console.log(video);
return {
video:video
};
},
在html中
<video id="videoId" class="video-js vjs-default-skin vjs-big-play-centered"
controls width="720" height="480"
poster="{{video.thumbs}}">
<source type='video/mp4' src="{{uurl}}" />
<!-- <source type='video/mp4' /> -->
</video>
我知道这是一种不好的做法,有没有标准的做法,因为这是行不通的
我的服务器方法
page.open(url, function (status) {
page.getContent(function(content) {
var $ = cheerio.load(content);
var mp4Link = $('#xvideos_pic > a').attr('href');
console.log(mp4Link);
fut.return(mp4Link);
});
});
return fut.wait();
有什么建议吗?如果你在控制台中执行session.get vurl,你有什么建议吗?是的,首先我得到了eror,然后得到了vurl。你会得到错误,因为加载页面时没有视频的url。之后,您会得到url,但它不会重新加载视频。您需要在获取url后才能加载它。也许只有在你有了url后才将视频html添加到页面中才能解决这个问题。在等待答复时显示加载或其他内容X,是的,已经这样做了,因为刮板机需要一些时间,旋转器显示的时间比平常多
page.open(url, function (status) {
page.getContent(function(content) {
var $ = cheerio.load(content);
var mp4Link = $('#xvideos_pic > a').attr('href');
console.log(mp4Link);
fut.return(mp4Link);
});
});
return fut.wait();