我正在尝试使用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)
我究竟做错了什么?
我的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) 我想要包含一个调用/assets/js/clusterfeaturelayer.js我的项目的文件,其中我使用SystemJS和WebPack,它具有以下结构.
该文件以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) /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)中的任何内容的情况下避免此问题?
话题说明了这一点.我不明白为什么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) 当我使用Angular2预发行版时,我不得不systemjs使用外部javascript库,即ESRI ArcGIS JavaScript API,它基于AMD模块(虽然可以输入).
现在我想迁移到Angular2 CLI.但是,在Angular2移动systemjs到webpack没有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
我正在尝试创建一个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方法.
我正在尝试将一个返回字符串的 lambda 表达式分配给一个属性,根据 API 描述,该属性接受类型 (String | Object[] | Function)。
this._popupTemplate.content = (feature) => {
var template: string;
//....
return template;
}
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但是,webstorm 说“
类型(特征:任何)=> 字符串的分配表达式不能分配给类型字符串
”
所以我尝试使用类型断言:<string>(feature) => {...}这似乎没有效果。我怎样才能满足webstorm(不压制信息)?
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,它突然起作用.
但我的意思是,我不能将所有内容都放在一个文件中,因为随着应用程序的增长它会变得非常混乱.
我正在尝试将内容容器填充到高度的 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
实现这一目标的正确方法是什么?如果可能的话,我什至更愿意将标题定位为“相对”而不是绝对的。但这可能是不可能的吗?
javascript ×3
angular ×2
python ×2
typescript ×2
asp.net-core ×1
c++ ×1
css ×1
html ×1
html5 ×1
jquery ×1
lambda ×1
python-3.4 ×1
python-3.x ×1
queue ×1
systemjs ×1
webpack ×1