Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 将Cast.js与Meteor一起使用_Json_Meteor_Jquery Isotope - Fatal编程技术网

Json 将Cast.js与Meteor一起使用

Json 将Cast.js与Meteor一起使用,json,meteor,jquery-isotope,Json,Meteor,Jquery Isotope,我正在使用Meteor初始化的例子,我很难理解它是如何工作的。他的演示是用Meteor构建的,但是他的博客和github上的说明对我来说有点不清楚。我正在尝试做一个类似于他的演示的布局,但它不会渲染视频,而是渲染照片。我希望有人能告诉我哪里出了问题 首先,我的HTML模板如下: {{#constant}} <div id="cast"></div> {{/constant}} 编辑: 0.5.1上的新更改很好地修复了我在cast.js中遇到的大多数错误,但是我仍然在

我正在使用Meteor初始化的例子,我很难理解它是如何工作的。他的演示是用Meteor构建的,但是他的博客和github上的说明对我来说有点不清楚。我正在尝试做一个类似于他的演示的布局,但它不会渲染视频,而是渲染照片。我希望有人能告诉我哪里出了问题

首先,我的HTML模板如下:

{{#constant}}
  <div id="cast"></div>
{{/constant}}
编辑:

0.5.1上的新更改很好地修复了我在cast.js中遇到的大多数错误,但是我仍然在将数据渲染到每个模板中时遇到一些问题

首先,当我运行
db.picture.findOne()时,您知道我的数据是如何构造的
在mongoDB中,数据呈现为:

   {
        "id" : "999999999999999",
        "from" : {
            "name" : "Seano314",
            "id" : "99999999"
        },
        "picture" : "https://photoSmall.jpg",
        "source" : "https://photoLarge.jpg",
        "height" : 540,
        "width" : 720
}
现在我从
Template.cast.rendered
函数中得到一个错误
无法设置未定义的属性'rendered'。我不确定是因为我调用的数据错误,还是因为我没有意识到发生了其他事情,所以我得到了这个错误。你有没有想过会发生什么


提前谢谢

谢谢你尝试我的小图书馆。我已经很长时间没有接触过Meteor了(也没有接触过这个库),所以希望我仍然可以为这个工作提供一些帮助

首先,您需要在Meteor客户端代码中包含
app.js
文件(我在repo中将其重命名为
cast.js
),而不是服务器端代码。这可能解释了为什么出现未定义的
窗口
错误。正如您在发布的代码末尾所看到的,
cast.js
正在尝试将其名称附加到全局
窗口
对象。。。从而使其成为一个全局变量。如果窗口不存在(服务器上不存在),则会出现此错误

其次,如果您使用的是独立构建
cast.js
,则不需要使用
require('cast')
语句。强制转换构造函数已定义为
cast

除此之外,事情看起来还不错。我已经更新了一些流星的具体说明。我还建议使用
dist
文件夹中更新的
cast.js
文件

编辑:

好的,你的新错误是Meteor加载脚本的结果。对于初学者,您需要确保脚本仅在客户端上加载,并且在加载dom之后加载。这解释了您当前的错误:
document.body
未定义,因为dom尚未加载!这是因为Meteor将其所有脚本加载到
。。。然而,在我编写的大多数web应用程序中,我在
标记的末尾加载脚本

要解决此问题,请执行以下操作: 将
cast.js
文件放在
public
文件夹中,这样它就不会被Meteor自动绑定。 然后在加载DOM后加载脚本:

if (Meteor.isClient) {

  Meteor.startup(function() {
     $('head').append('<script src="/cast.js"></script>');
  });

}
if(Meteor.isClient){
Meteor.startup(函数(){
$('head')。追加('');
});
}
这样做可能会遇到一些问题,即在加载
cast
之前运行模板。。。但可能没问题。我还可以在lib本身中做一个小的修复,这样它在加载dom之前不会检查
translate3d
支持

编辑:
Cast.js的0.5.1版现在只需将其包含在Meteor的客户端代码中即可正确加载。还请注意,API已经发生了相当大的变化(为了更好,imo)。

此外,这里有指向的链接和指向的链接。“在html页面中需要此脚本。”您在哪里执行此操作?您可能希望在正在使用的任何html文件(可能是index.html文件)的顶部包含标记。我已尝试在客户端和服务器中添加该文件,但两者都不起作用。如果我错了,请纠正我,但是我认为meteor会自动获取app.js文件的源代码。尽管如此,我还是在
中加入了源代码标签,但它不起作用。介意把代码放到github repo中吗?嘿,伙计们。明天早上我会仔细看一看,我们可以把它整理好。太好了!谢谢,便当。我仍然在
Meteor.autorun
函数中遇到两个错误,分别是
无法设置未定义的
的属性'rendered',以及
无法调用null的方法'insertBefore',这似乎是问题的根源。第二个错误来自
cast.js
中的第601行。你有没有想过是什么原因造成的?另外,仅供参考,我的应用程序使用的是Iron路由器而不是Meteor路由器,这可能与此有关。非常奇怪。这一定与Meteor加载脚本的方式有关。。。自从我上次使用它以来,这种行为可能已经改变了。我将尝试安装最新版本的Meteor,看看是否可以运行它。Cast.js的0.5.1上的新更改很好地修复了第二个错误,但是我仍然得到了Undededefine的
无法设置属性“rendered”的错误。如果不是太麻烦的话,你有一个可以在github中发布的流星示例吗?我认为问题可能来自我如何调用数据,但是我很难确定修复需要在哪里。我会更新我上面的问题,这样你就可以看到我正在使用的完整代码了。太棒了!非常感谢你的帮助,本托。这个例子很有魅力。
   {
        "id" : "999999999999999",
        "from" : {
            "name" : "Seano314",
            "id" : "99999999"
        },
        "picture" : "https://photoSmall.jpg",
        "source" : "https://photoLarge.jpg",
        "height" : 540,
        "width" : 720
}
if (Meteor.isClient) {

  Meteor.startup(function() {
     $('head').append('<script src="/cast.js"></script>');
  });

}