有没有解决方案来获取对象的函数名称?
function alertClassOrObject (o) {
window.alert(o.objectName); //"myObj" OR "myClass" as a String
}
function myClass () {
this.foo = function () {
alertClassOrObject(this);
}
}
var myObj = new myClass();
myObj.foo();
Run Code Online (Sandbox Code Playgroud)
for (var k in this) {...}- 没有关于className或的信息ObjectName.有可能得到其中一个吗?
jQuery有resize()- 事件,但它只适用于窗口.
jQuery(window).resize(function() { /* What ever */ });
Run Code Online (Sandbox Code Playgroud)
这很好用!但是当我想将事件添加到div元素时,它不起作用.
例如
jQuery('div').resize(function() { /* What ever */ });
Run Code Online (Sandbox Code Playgroud)
我想在div元素的大小发生变化时开始回调.我不想启动可调整大小的事件 - 只是一个事件来检查div元素的大小是否已经改变.
有没有解决办法呢?
如何定义一个也可以在模板助手中调用的Meteor方法?
我有这两个文件:
file:lib/test.js
Meteor.methods({
viewTest : function (str) {
return str;
}
});
Run Code Online (Sandbox Code Playgroud)
file:client/myView.js
Template.helloWorld.helpers({
txt : function () {
var str = Meteor.call('viewTest', 'Hello World.');
return str;
}
});
Run Code Online (Sandbox Code Playgroud)
当我给"str"一个正常的字符串时,一切正常.但在这种情况下,我的模板没有任何价值.我定义 - 测试 - 在同一个文件中,该方法是一个正常的函数,并试图调用该函数.我得到的错误是该函数不存在.所以我认为Meteor会在它知道我为它定义的方法之前尝试渲染模板.但我认为这有点不寻常 - 不是吗?
我尝试使用以下方法准备我的数据库字段以进行地理编码:
MyCollection._ensureIndex({'data.address.located':'2dsphere'});
Run Code Online (Sandbox Code Playgroud)
但是这个错误来了:
MongoError: Can't extract geo keys from object, malformed geometry?:
{ type: "Point", coordinates: [ 32.4586858, -110.8571443 ] }
Run Code Online (Sandbox Code Playgroud)
我看不出这个领域有什么问题?任何的想法 ?
当我去看一下这个就说明了这一点:
The following example stores a GeoJSON Point:
{ loc: { type: "Point", coordinates: [ 40, 5 ] } }
Run Code Online (Sandbox Code Playgroud) 我使用Windows 8并安装了Virtualbox,因此我可以访问Linux(Ubuntu)系统.
我仍然做的最多 - 所以在这一刻我有一个工作的Virtualbox与Ubuntu 14.04 LTS.
在我的情况下,我需要这个用于流星的Linux的Virtualbox.
问题:
meteor使用nodejs所以我需要有符号链接访问(我认为它的符号链接 - 我读了一些关于它)
参考:如何在Ubuntu VrtualBox中运行meteor app并使用Windows主机上的编辑器进行编辑?
他描述了我现在遇到的同样问题:
Error: EROFS, read-only file system '/media/sf_Shared/Dropbox/dev_uhurajr/chat/.meteor/local/.build320446.build/programs/server/npm/logging/main/node_modules'
Run Code Online (Sandbox Code Playgroud)
所以我尝试以这种方式在我的主机(Windows)上启用Symlinks:
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1
Run Code Online (Sandbox Code Playgroud)
参考:http://www.ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/
这很好用!当我检查我的VM的extradata时,字段SharedFoldersEnableSymlinksCreate已打开1
我为2个文件夹设置了这个值.Windows上的共享文件夹以及Linux VM上的共享文件夹的名称.
但是..同样的问题.每次meteor尝试编写符号链接时都会发生以下错误:
Error: UNKNOWN, unknown error '/media/Projekte/test/.meteor/local/.build320446.build/programs/server/npm/logging/main/node_modules'
Run Code Online (Sandbox Code Playgroud)
那么最好的方法是让这个工作吗?
我们使用Google的折线解码算法来解码我们的坐标.但在我们的情况下,解码后大多数坐标都是错误的.我们还以更深的精度测试了该过程.
这是我们的代码以及测试坐标错误的日志:
let coordinates = [ [lat, lng], [...], ...];
console.log(coordinates[13347]); // Output: [ 13.44668, 52.47429 ]
let encoded = Polyline.encode(coordinates);
let decoded = Polyline.decode(encoded);
console.log(decoded[13347]); // Output: [ 13.44671, 52.47445 ]
console.log(coordinates.length == decoded.length)// true
Run Code Online (Sandbox Code Playgroud)
在这种情况下,距离是20米这是很多.其他点的距离可达150米甚至更长.
在我的坐标数组中,我们要解码的坐标大约为250.000.
我错过了什么,所以解码/编码过程失败了吗?
我们的情况是GraphQL Query的响应必须返回对象的一些动态属性.在我们的例子中,我们无法预定义所有可能的属性 - 因此它必须是动态的.
我们认为有两种方法可以解决它.
const MyType = new GraphQLObjectType({
name: 'SomeType',
fields: {
name: {
type: GraphQLString,
},
elements: {
/*
THIS is our special field which needs to return a dynamic object
*/
},
// ...
},
});
Run Code Online (Sandbox Code Playgroud)
正如您在示例代码中看到的那样,元素是必须返回对象的属性.解决此问题时的响应可能是:
{
name: 'some name',
elements: {
an_unkonwn_key: {
some_nested_field: {
some_other: true,
},
},
another_unknown_prop: 'foo',
},
}
Run Code Online (Sandbox Code Playgroud)
1)返回"任意对象"
我们可以返回任何对象 - 因此GraphQL不需要知道Object有哪些字段.当我们告诉GraphQL该字段是GraphQlObjectType类型时,它需要定义字段.因此,似乎无法告诉GraphQL某人只是一个对象.
我们已经改变了这个:
elements: {
type: new GraphQLObjectType({ name: 'elements' });
},
Run Code Online (Sandbox Code Playgroud)
2)我们可以定义动态字段属性,因为它在函数中
当我们将字段定义为函数时,我们可以动态地定义对象.但是字段函数需要一些信息(在我们的例子中,信息将被传递给元素),我们需要访问它们来构建字段对象.
例:
const MyType = new …Run Code Online (Sandbox Code Playgroud) 我尝试在我的Template.rendered函数中获取返回的数据.
目前的代码是:
this.route('editCat', {
layoutTemplate : 'layoutCol2Left',
template : 'modCategoriesEdit',
path : '/mod/categories/edit/:_id',
yieldTemplates : _.extend(defaultYieldTemplates, {
'navigationBackend' : {to : 'contentLeft'}
}),
waitOn : function () {
return Meteor.subscribe('oneCat', this.params._id);
},
data : function () {
return Categories.findOne({_id : this.params._id});
}
});
Run Code Online (Sandbox Code Playgroud)
在这个块中,我等待订阅,Collection Document并将Document作为数据返回.
现在我可以在我的模板中使用返回的文档,如下所示:
<template name="modCategoriesEdit">
<h1>Edit {{name}}</h1>
</template>
Run Code Online (Sandbox Code Playgroud)
我的问题是我必须在我的渲染函数中使用返回的数据,如下所示:
Template.modCategoriesEdit.rendered = function () {
console.log(this.data);
}
Run Code Online (Sandbox Code Playgroud)
但是这会返回"null".
所以我的问题是:如何在渲染函数中访问返回的数据?
我是htaccess重定向的新手,但是想要做特殊的smth - 我不知道什么是推荐的方式,不知道这是否仍然存在.
我在.htaccess文件中有这个:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
现在每个URL都被重定向到HTTPS版本 - 这很好并且必要.但现在有一些例外.
例如,这些URL必须是HTTP而不是HTTPS:
http://www.mywebsite.com/another/url/which/has/to/be/http
http://www.mywebsite.com/and_again?var=a
Run Code Online (Sandbox Code Playgroud)
是否有可能使用htaccess来解决这个问题,当它可能时,你可以给我一个参考链接或描述如何做到这一点.
编辑
我现在有这个代码:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !\s/+(/commerce_paypal/*)\s [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
目标是每个(!)url都被重定向到HTTPS,除了任何在开头都有commerce_paypal的url.
例如:
mydomain.com/commerce_paypal <- http
mydomain.com/commerce_paypal/smth/else <- http
mydomain.com/what/ever <- https
Run Code Online (Sandbox Code Playgroud) 我想开发一个处理使用过的框架的句柄javascript类.
例如:
myClass.addFramework('jQuery'); // just an example
Run Code Online (Sandbox Code Playgroud)
它工作正常,我的类添加框架 - 但如果有任何jQuery代码,它将无法工作,因为框架是在dom准备好后加载的,所以一个默认的jQuery代码片段jQuery(document).ready(function(){});无法工作,因为'jQuery '尚未定义.
是否有任何解决方案,我可以编写一个"修复"脚本,在dom的其余部分开始加载之前,我的所有addFramework方法都必须执行?
javascript ×6
meteor ×4
jquery ×2
.htaccess ×1
apache ×1
graphql ×1
iron-router ×1
mod-rewrite ×1
mongodb ×1
redirect ×1
regex ×1
symlink ×1
virtualbox ×1