小编net*_*tik的帖子

Internet Explorer中的HTML5拖放问题(无法访问dataTransfer属性)

我正在尝试使用HTML5实现基本的拖放功能.它在Chrome中运行完全正常,但在IE10中我收到0x8000ffff - JavaScript runtime error: Unexpected call to method or property access.错误setData.

function handleDragStart(e) {
    e.dataTransfer.effectAllowed = 'move';                                        
    e.dataTransfer.setData("dropTarget", g.destination);
}

var cols = $("#" + g.source + " tbody > tr");
[].forEach.call(cols, function (col) {
    col.addEventListener('dragstart', handleDragStart, false);
});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript jquery html5 internet-explorer drag-and-drop

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

如何在APP_INITIALIZER中处理/通知用户不可恢复的异常?

我的Angular5应用程序在应用程序初始化期间从后端加载配置文件(APP_INITIALIZER).由于应用程序无法在没有它的情况下运行,我的目标是向用户显示无法加载配置的消息.

 providers: [ AppConfig,
        { provide: APP_INITIALIZER, useFactory: (config: AppConfig) => () => config.load(), deps: [AppConfig], multi: true },
        { provide: LocationStrategy, useClass: HashLocationStrategy},
        { provide: ErrorHandler, useClass: GlobalErrorHandler }]
Run Code Online (Sandbox Code Playgroud)

AppConfig班应该加载从应用程序加载之前的后端服务的配置文件:

@Injectable()
export class AppConfig {

    private config: Object = null;
    constructor(private http: HttpClient) {}

    public getConfig(key: any) {
        return this.config[key];
    }


    public load() {
        return new Promise((resolve, reject) => {
            this.http.get(environment.serviceUrl + 'config/config')
                .catch((error: any) => {                  
                    return Observable.throw(error || 'Server error');
                })
                .subscribe((responseData) => {
                    this.config …
Run Code Online (Sandbox Code Playgroud)

initialization typescript angular

21
推荐指数
4
解决办法
2279
查看次数

WebPack + SystemJS - 如何添加JavaScript文件?

我想要包含一个调用/assets/js/clusterfeaturelayer.js我的项目的文件,其中我使用SystemJS和WebPack,它具有以下结构.

  • / app < - 角度应用代码
  • / node_modules < - npm包
  • / assets/js < - 其他不在NPM中的第三方库

该文件以AMD样式定义,如下所示:

define([
  'dojo/_base/declare',
  'dojo/_base/array',
  'dojo/_base/lang',  
  'esri/SpatialReference',
  'esri/geometry/Point',
  'esri/geometry/Polygon',
  'esri/geometry/Multipoint',
  'esri/geometry/Extent',
  'esri/graphic',

], function (declare, arrayUtils, lang, SpatialReference, Point, Polygon, Multipoint, Extent, Graphic) 
{

});
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中使用该组件 import ClusterFeatureLayer = require("ClusterFeatureLayer");

但无论我如何尝试将此文件包含在我的systemjs和webpack配置中,它都找不到它:

这是我的systemjs配置:

(function(global) {

  // map tells the System loader where to look for things.
  var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs',
    'ClusterFeatureLayer':        'assets/js'
  };

  // …
Run Code Online (Sandbox Code Playgroud)

javascript systemjs webpack

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

对于通过包导入的类型以及直接从同一模块导入的类型,isinstance失败

/Project
|-- main.py
|--/lib
|  |--__init__.py
|  |--foo.py
|  |--Types.py
Run Code Online (Sandbox Code Playgroud)

/Project/lib已被添加到PYTHONPATH变量中.

Types.py:

class Custom(object):
    def __init__(self):
        a = 1
        b = 2
Run Code Online (Sandbox Code Playgroud)

foo.py:

from Types import Custom
def foo(o):
    assert isinstance(o, Custom)
Run Code Online (Sandbox Code Playgroud)

最后,来自main.py:

from lib.Types import Custom
from lib.foo import foo
a = Custom()
foo(a)
Run Code Online (Sandbox Code Playgroud)

现在的问题是,这a是类型lib.foo.Custom,而isinstance调用将检查它是否等于foo.Custom,显然返回false.

如何在不更改库(lib)中的任何内容的情况下避免此问题?

python python-3.x python-3.4

9
推荐指数
2
解决办法
2301
查看次数

为什么std :: queue不是线程安全的?

话题说明了这一点.我不明白为什么std :: queue(或者通常:任何队列)本质上不是线程安全的,当没有涉及其他数据结构的迭代器时.

根据共同的规则

  • 至少有一个主题是写...
  • 另一个线程正在从共享资源中读取

我应该在以下示例代码中遇到冲突:

#include "stdafx.h"
#include <queue>
#include <thread>
#include <iostream>

struct response
{
    static int & getCount()
    {
        static int theCount = 0;
        return theCount;
    }

    int id;
};


std::queue<response> queue;

// generate 100 response objects and push them into the queue
void produce()
{
    for (int i = 0; i < 100; i++)
    {
        response r; 
        r.id = response::getCount()++;
        queue.push(r);
        std::cout << "produced: " << r.id << std::endl;
    }
}

// get the 100 …
Run Code Online (Sandbox Code Playgroud)

c++ queue multithreading

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

在Angular2 CLI中使用外部javascript AMD模块

当我使用Angular2预发行版时,我不得不systemjs使用外部javascript库,即ESRI ArcGIS JavaScript API,它基于AMD模块(虽然可以输入).

现在我想迁移到Angular2 CLI.但是,在Angular2移动systemjswebpack没有webpack.config要修改的文件之后,我无法看到如何导入像arcgis这样的外部库.

外部库存储在:

<script src="https://js.arcgis.com/3.19/"></script>

示例:在我的角度组件中,我不知何故需要能够导入这些:

import map from 'esri/map';
Run Code Online (Sandbox Code Playgroud)

导入' https://js.arcgis.com/3.19/esri/map.js '

知道如何实现这一目标吗?

编辑:如果我将链接添加到map.js angular-cli.json

"scripts": [
          "../node_modules/jquery/dist/jquery.js",
           ....
          "https://js.arcgis.com/3.19/esri/map.js"
      ],
Run Code Online (Sandbox Code Playgroud)

并将其导入为 import {map} from 'esri/map';

我得到了一个 webpackMissingModule: C:\Users\xy\project\src\https:\js.arcgis.com\3.19\esri\map.j??s

javascript angular

7
推荐指数
1
解决办法
580
查看次数

ASP.NET vNext MVC和实体框架问题

我正在尝试创建一个ASP.NET vNext WebAPI + AngularJS +实体框架项目.但显然,在EF7中有很多变化,所以我遇到了以下问题:

我改变了project.json如下:

"dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",
    "EntityFramework": "7.0.0-beta1",
    "EntityFramework.SqlServer": "7.0.0-beta1",
    "EntityFramework.Commands": "7.0.0-beta1",
    "Microsoft.AspNet.Mvc": "6.0.0-beta1",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta1"
Run Code Online (Sandbox Code Playgroud)

在我的DataContext类中,我尝试以下方法:

using System;
using Project1.Models;
using Microsoft.Data.Entity;

namespace Project1.DataAccess
{
    public class DataContext
    {
        public DbSet<Website> Websites { get; set; }

        public DataContext()
        {
            Microsoft.Data.Entity.Infrastructure.Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DataContext>());
        //Database.SetInitializer(new DropCreateDatabaseAlways<DataContext>());
        }

     } 
}
Run Code Online (Sandbox Code Playgroud)

}

首先:为什么命名空间System.Data.Entity改为Microsoft.Data.Entity?在任何microsoft msdn文章中我都找不到任何有关此更改的内容!

第二:整体Database.SetInitializer不再起作用了.它建议使用Microsoft.Data.Entity.Infrastructure命名空间,但Database类不包含SetInitializer方法.

entity-framework entity-framework-core asp.net-core

5
推荐指数
1
解决办法
2428
查看次数

打字稿中 lambda 表达式的类型

我正在尝试将一个返回字符串的 lambda 表达式分配给一个属性,根据 API 描述,该属性接受类型 (String | Object[] | Function)。

 this._popupTemplate.content = (feature) => {
            var template: string; 
            //....
            return template;    
      }
Run Code Online (Sandbox Code Playgroud)

它似乎有效,但是,webstorm 说“

类型(特征:任何)=> 字符串的分配表达式不能分配给类型字符串

所以我尝试使用类型断言:<string>(feature) => {...}这似乎没有效果。我怎样才能满足webstorm(不压制信息)?

lambda typescript

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

Flask socket.io消息事件在不同的文件中

socketservice.py:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from backend.database import db

app = Flask(__name__)
socketio = SocketIO(app, engineio_logger=True)

@socketio.on('connect')
def handle_connection():
    from backend.electionAdministration import syncElections
    syncElections()

if __name__ == '__main__':
    socketio.run(app)
Run Code Online (Sandbox Code Playgroud)

electionAdministration.py:

from flask_socketio import SocketIO, emit
from bson.json_util import dumps
from backend.socketservice import socketio
from backend.database import db

def syncElections():
    elections = db.elections.find()
    emit('syncElections',dumps(res) , broadcast=True)

@socketio.on('createElection')
def createElection(data):
    db.elections.insert({'title': data["title"]})
    syncElections()
Run Code Online (Sandbox Code Playgroud)

问题是,当createElection事件在文件中时,事件永远不会被调用electionAdministration.py.当我进入它时socketservice.py,它突然起作用.

但我的意思是,我不能将所有内容都放在一个文件中,因为随着应用程序的增长它会变得非常混乱.

python flask-socketio

5
推荐指数
1
解决办法
984
查看次数

height:100% 的容器大于整个页面

我正在尝试将内容容器填充到高度的 100%,同时具有 30px 标题。但目前,内容容器大于 100%,导致滚动条。

代码

html {
  padding:0;
  margin: 0;
  height:100%;
}
body {
  padding:0;
  margin: 0;
  height:100%;
}
#header {
  height: 30px;
  background: black;
  width: 100%;
  position: absolute;
  z-index: 2;
}
#container {
  position: relative;
  height:100%;
  padding-top:30px;
  background-color: #aaaaaa;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>
  <body>
    <div id="header"></div>
    <div id="container"></div>
  </body>
</html>  
Run Code Online (Sandbox Code Playgroud)

演示:https : //plnkr.co/edit/48SJjl9dB7S7IiC8JLcP?p=preview

实现这一目标的正确方法是什么?如果可能的话,我什至更愿意将标题定位为“相对”而不是绝对的。但这可能是不可能的吗?

html css

4
推荐指数
1
解决办法
2658
查看次数