小编Mow*_*zer的帖子

为什么深层嵌套函数可以访问顶级变量?

我一直在做一些javascript阅读,并且我已经收集到一个闭包只能访问闭包"包装"它,或者,你可能会说它是直接的父.现在我已经玩了一点,我在这个jsfiddle中看到即使是深层嵌套函数也可以访问定义的vars.

任何人都可以解释一下吗?或者解释一下我完全错了什么?

http://jsfiddle.net/tPQ4s/
function runNums() {
    this.topVar = 'blah';
    return function(){
        (function() {                    
            (function() {
                console.log(topVar);
            })();
        })();
    }
}

var someFunc = runNums();
someFunc(); 
Run Code Online (Sandbox Code Playgroud)

javascript closures

3
推荐指数
2
解决办法
646
查看次数

使用Firebase应用密钥验证服务器

我想实现第1段中描述的服务器身份验证方法.

  1. 使用Firebase应用程序密钥:所有身份验证方法都可以接受Firebase应用程序密钥而不是JWT令牌.这将授予服务器对整个F​​irebase数据库的完全读写权限.除非通过App Dashboard撤消,否则此访问权限永不过期.

我需要指导如何做到这一点.我不想使用任何auth变量,因为我不会通过一些单一的静态密钥对用户进行身份验证,而是我的服务器.

那么我的安全规则是什么样的呢?

这是我到目前为止所拥有的.

安全rules.json
{
  "rules": {
    ".read": true,
    ".write": "secret == 'mykey'"
  }
}
Run Code Online (Sandbox Code Playgroud)

我将如何在服务器端HTTP请求中实现此功能?我会创建一个名为secretvalue 的标头,mykey如下所示:

server.js
{"secret": "mykey"}
Run Code Online (Sandbox Code Playgroud)

security authentication firebase

3
推荐指数
1
解决办法
3061
查看次数

使用Google GeoCharts API的美国Geochart州

我想制作一张类似于此处所示的可选州的美国地图。

资源

在此处输入图片说明

除了下面的内容之外,我只想渲染美国的州,而不是多个国家。

在此处输入图片说明

在这个jsBin中,我希望看到在悬浮有一些弹出文本时突出显示的各个状态。但是,我实际上只看到美国的灰色背景轮廓,没有可辨别的州。

请提供一个可以完成任务的jsBin。

http://jsbin.com/jodesitoto/edit?html,输出
<!DOCTYPE html>
<html>
  <head>
    <!---- >
    https://developers.google.com/chart/interactive/docs/gallery/geochart#full
    <!---->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['geochart']});
      google.charts.setOnLoadCallback(drawRegionsMap);

      function drawRegionsMap() {

        var data = google.visualization.arrayToDataTable([
          ['State', 'Select'],
          ['US-AL', 0],
          ['US-AK', 0],
          ['US-AR', 0],
          ['US-AK', 0],
          ['US-AZ', 0],
          ['US-Colorado', 0],
          ['US-CO', 0],
          ['US-DE', 0],
          ['US-FL', 0],
          ['US-HI', 0],
          ['US-KS', 0],
          ['US-KY', 0],
          ['US-MI', 0],
          ['US-MO', 0],
          ['US-MS', 0],
          ['US-MT', 0],
          ['US-NE', 0],
          ['US-NJ', 0],
          ['US-NM', 0],
          ['US-NY', 0],
          ['US-OR', 0],
          ['US-PA', …
Run Code Online (Sandbox Code Playgroud)

google-api google-visualization

3
推荐指数
1
解决办法
2735
查看次数

下载最新版本nvm的命令?

我正在尝试安装最新版本nvm根据本文)我运行:

nvm install 4.0
Run Code Online (Sandbox Code Playgroud)

有效。但我想确保安装最新版本的 nvm,因为他们可能在文章撰写后发布了更新版本。

我可以运行命令来下载最新版本的 nvm 吗?

bash command-line nvm

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

材质UI列表onClick在嵌套列表上触发单击事件

我在其中一个组件中有一个材料ui列表.当我单击此列表中的任何项目时,我转到另一个listView.我正在使用路由器去另一个listView.并使用onClick方法.每当我点击第一个列表的任何列表项时,我都会打印"firstList clicked".每当我点击第二个列表中的任何项目时,它会打印"secondList clicked".

这是我的问题:当我单击第一个列表的ListItem时,console.log("secondList clicked")也会自动打印出"firstList Clicked".我在第二个列表中有四个列表项,所以我的控制台打印输出如下所示

firstList Clicked secondList Clicked secondList Clicked secondList Clicked secondList Clicked

为什么会这样?

这是我的代码.

SecondList代码

class TagListItemDetails extends Component {
    handleClick() {
        console.log("secondList clicked")
    }

    handleButtonClick() {
        browserHistory.push("TagList")
    }

    render() {

        return (
            <MuiThemeProvider>
                <div>
                    <List id="parent-list-tags">
                        <ListItem primaryText="Kitchen" onTouchTap={this.handleClick()}/>
                        <ListItem primaryText="Beach" onClick={this.handleClick()}/>
                        <ListItem primaryText="Marriage" onClick={this.handleClick()}/>
                        <ListItem primaryText="Garden" onClick={this.handleClick()}/>
                    </List>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                    <div className="backButton">
                        <RaisedButton backgroundColor="#293C8E" label="Back" onClick={this.handleButtonClick} labelColor="white">

                        </RaisedButton>
                    </div>
                </div>
            </MuiThemeProvider>

        );
    }
}

const mapStateToProps =(state) =>{
    return {
        tags: state.tagReducer
    };
};

function matchDispatchToProps(dispatch){ …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router material-ui react-redux

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

在css-grid中使用align-items时使单元格内容填充整个单元格区域

我想用 CSS Grid 做两件看起来不兼容的事情:

  1. align-items: center; 我希望每个单元格的内容以每个单元格的垂直轴为中心。

  2. 用颜色填充单元格的整个可用区域。当我应用该属性align-items: center;并且没有用颜色填充整个区域时,内容会沿垂直轴被挤压。

我究竟做错了什么?我如何达到我想要的结果?CODEPEN DEMO

.grid {
  align-items: center;
  /* remove align-items property to see content fill entire cell area */
Run Code Online (Sandbox Code Playgroud)

期望的行为

我想用颜色填充每个单元格的全部内容。

在此处输入图片说明

实际行为

内容沿垂直轴被挤压,不会用颜色填充单元格。

在此处输入图片说明

演示

这是 Codepen 中的演示。

代码

https://codepen.io/anon/pen/NaLoLZ?editors=1100

.HTML
<div class="grid">
<div class="item1">item 1</div>
<div class="item2">item 2</div>
<div class="item3">item 3</div>
<div class="item4">item 4</div>
<div class="item5">item 5</div>
<div class="item6">item 6</div>
<div class="item7">item 7</div>
<div class="item8">item 8</div>
<div class="item9">item 9</div>
<div class="item10">item 10</div>
<div class="item11">item 11</div>
<div class="item12">item 12</div>
<div …
Run Code Online (Sandbox Code Playgroud)

html css css-grid

3
推荐指数
1
解决办法
4081
查看次数

如何使用 Reactjs Material-UI 滚动时自动隐藏 AppBar

如何<AppBar/>在滚动时自动隐藏我的 Reactjs 组件,如图 1 所示?

图。1。<AppBar/>滚动时自动隐藏

在此输入图像描述

我正在使用 Material-UI,我的代码如下。

MyAppBar.js
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';

const styles = {
  root: {
    flexGrow: 1,
  },
  grow: {
    flexGrow: 1,
  },
  menuButton: {
    marginLeft: -12,
    marginRight: 20,
  },
};

function ButtonAppBar(props) {
  const { classes } …
Run Code Online (Sandbox Code Playgroud)

scroll reactjs material-design material-ui

3
推荐指数
1
解决办法
4276
查看次数

如何使用 GMail 查询语言过滤没有附件的邮件?

如何过滤掉没有附件的 Gmail 邮件?

这是我试图遵循的文档

我可以看到,为了包含带有附件的消息,我使用了以下查询:

has:attachment
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到相反的方法。我寻求类似的东西:

!has:attachment
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

gmail google-apps-script gmail-api

3
推荐指数
1
解决办法
2686
查看次数

如何使用nodeJS和Puppeteer解决“目标已关闭”错误?

我正在尝试抓取和抓取一些网站以提取一些链接。我希望看到所有内容都hrefs打印到我的控制台上。但是,我收到以下错误。

out [ Promise { } ] (节点:15908) UnhandledPromiseRejectionWarning:错误:协议错误(Page.navigate):目标已关闭。

我究竟做错了什么?

这个答案说错误消息意味着browser.close()在我调用我的pageFunction.

但我正在使用async await,显然浏览器仍然对我关闭。

我该如何修复这个错误?

const domains = [...]

const pageFunction = async $posts => {
  const data = [];
  await $posts.forEach( $post => {
    data.push( $post.href );
  });
  return data;
}

(async () => {
  // start browser
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // loop over domains
  const out = await domains.slice(-1).map( async domain => { …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js promise puppeteer

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

Polymer 1.0 paper-menu-button horizo​​ntalAlign和horizo​​ntalOffset不工作

我有以下代码:

<paper-toolbar id="mainToolbar">
    <paper-icon-button id="paperToggle" icon="menu" paper-drawer-toggle></paper-icon-button>
    <div class="app-name">Dashbord</div>
    <span class="flex"></span>
    <paper-menu-button horizontalAlign="right" horizontalOffset="20" verticalAlign="top" verticalOffset="50">
        <paper-icon-button icon="more-vert" class="dropdown-trigger"></paper-icon-button>
        <paper-menu class="dropdown-content">
            <paper-item>Share</paper-item>
            <paper-item>Settings</paper-item>
            <paper-item>Help</paper-item>
        </paper-menu>
   </paper-menu-button>
</paper-toolbar>
Run Code Online (Sandbox Code Playgroud)

菜单按钮按预期工作,但下拉列表horizontalAlignhorizontalOffset属性不会生效.

我让下拉菜单工作的唯一方法是对元素定义中的值进行硬编码:

<iron-dropdown
  id="dropdown"
  opened="{{opened}}"
  horizontal-align="right"
  vertical-align="top"
  horizontal-offset="50"
  vertical-offset="20"
  open-animation-config="[[openAnimationConfig]]"
  close-animation-config="[[closeAnimationConfig]]"
  no-animations="[[noAnimations]]"
  focus-target="[[_dropdownContent]]">
  <paper-material class="dropdown-content">
    <content id="content" select=".dropdown-content"></content>
  </paper-material>
</iron-dropdown> 
Run Code Online (Sandbox Code Playgroud)

polymer paper-elements polymer-1.0

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