小编TJR*_*TJR的帖子

获取对象或类的名称

有没有解决方案来获取对象的函数名称?

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.有可能得到其中一个吗?

javascript

181
推荐指数
4
解决办法
26万
查看次数

调整div元素的大小

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元素的大小是否已经改变.

有没有解决办法呢?

javascript jquery

74
推荐指数
8
解决办法
13万
查看次数

如何在模板助手中使用Meteor方法

如何定义一个也可以在模板助手中调用的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会在它知道我为它定义的方法之前尝试渲染模板.但我认为这有点不寻常 - 不是吗?

javascript meteor

38
推荐指数
4
解决办法
2万
查看次数

"MongoError:无法从对象中提取地理键",类型为:Point

我尝试使用以下方法准备我的数据库字段以进行地理编码:

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)

javascript mongodb meteor

18
推荐指数
2
解决办法
2万
查看次数

设置Virtualbox 4.3以在guest虚拟机上使用符号链接的正确方法(对于meteor)

我使用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)

那么最好的方法是让这个工作吗?

symlink virtualbox meteor

15
推荐指数
2
解决办法
2万
查看次数

解码后,折线编码的lat/lng错误

我们使用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.

我错过了什么,所以解码/编码过程失败了吗?

google-polyline

14
推荐指数
1
解决办法
860
查看次数

GraphQL ObjectType,包含基于参数的动态字段

我们的情况是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)

javascript graphql

13
推荐指数
2
解决办法
1万
查看次数

meteorjs iron-router waitOn并用作渲染数据

我尝试在我的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".

所以我的问题是:如何在渲染函数中访问返回的数据?

publish-subscribe meteor iron-router

11
推荐指数
2
解决办法
4973
查看次数

htaccess重定向到HTTPS,除了几个网址

我是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)

regex apache .htaccess mod-rewrite redirect

11
推荐指数
1
解决办法
2万
查看次数

在dom加载之前执行javascript

我想开发一个处理使用过的框架的句柄javascript类.

例如:

myClass.addFramework('jQuery'); // just an example
Run Code Online (Sandbox Code Playgroud)

它工作正常,我的类添加框架 - 但如果有任何jQuery代码,它将无法工作,因为框架是在dom准备好后加载的,所以一个默认的jQuery代码片段jQuery(document).ready(function(){});无法工作,因为'jQuery '尚未定义.

是否有任何解决方案,我可以编写一个"修复"脚本,在dom的其余部分开始加载之前,我的所有addFramework方法都必须执行?

javascript jquery

9
推荐指数
1
解决办法
2870
查看次数