小编Ale*_*lan的帖子

AngularJS ng-repeat条件

我有一个JS对象数组(例如文档中的段落),我想使用angularJS显示它们. ng-repeat似乎是我需要的指令:

<span ng-repeat="paragraph in paragraphs">{{paragraph.text}}</span>

但是,我需要做的不仅仅是在这个循环中显示它们的内容.我需要<div class="pagebreak" />x像素之后插入分页符(仅用于视觉目的,例如:)(尝试WYSIWYG文档).

我的问题:

是否可以使用某种条件逻辑来计算前面段落垂直使用的像素数,如果超过x,则插入分页符div并重置计数器?

任何帮助/建议/方向非常感谢.

javascript angularjs

6
推荐指数
1
解决办法
1160
查看次数

将 JSON 数组反序列化为字符串数组

假设我有一个stringJSON 形式的对象数组:

string s = "[{\"name\":\"Person1\"},{\"name\":\"Person2\"}]";
Run Code Online (Sandbox Code Playgroud)

我想要的是一个字符串数组,每个字符串都是JSON 对象的字符串表示- 而不是对象本身。它应该是这样的:

string[] s = new string[]
{
     "{\"name\":\"Person1\"}",
     "{\"name\":\"Person2\"}"
};
Run Code Online (Sandbox Code Playgroud)

1) 我尝试的几乎每一次搜索都会获得数百万个关于如何使用(例如)Json.NET 简单反序列化 JSON 字符串的结果。这不是我想做的。

2)我尝试构建一个表示对象的类,以临时循环反序列化/序列化映射到数组中的每个字符串,但对象的模式是可变的(因此我只需要一个字符串表示)。

3)我尝试了一些正则表达式来尝试执行此操作,但是我的 JSON 字符串可以包含包含 JSON 字符串作为其值的字段(令人讨厌,但不受我控制),因此嵌套字符转义等在我决定之前让我部分发疯在这里求救。

这当然应该很简单?有人有任何指示吗?

.net c# serialization json json.net

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

为什么C#看起来部分取消转义命令行参数?

我试图将多个路径作为参数传递给控制台应用程序,但我收到"路径中的非法字符"错误.似乎有些东西误认为"C:\test\"转义双引号的参数的最后两个字符.

例如,如果我在C#中创建一个新的空控制台应用程序,如下所示:

static void Main(string[] args)
{
    Console.WriteLine(args[0]);
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

并在项目属性 - >调试下我添加一个命令行参数,如下所示:

显示CLI参数的项目属性:

然后我的输出看起来像这样:

命令提示符显示输出:C:\ test

如果正在评估/取消转义该值,为什么不\t成为标签?

如果该值未被评估/未转义,为什么会\"成为双引号?

(注意:我知道我可以解决这个问题,例如,修剪尾部反斜杠等.我正在寻求帮助,理解为什么参数似乎被部分评估)

c# string escaping

6
推荐指数
1
解决办法
323
查看次数

如何防止 React-Leaflet Map 子节点上的事件冒泡

我有一个React-Leaflet地图,我正在渲染div里面。

出于某种原因,与 div 的内容交互会导致下面的地图做出响应(例如:双击将缩放地图,拖动将平移地图) - 即使我正在调用e.stopPropagation()附加到 div 的处理程序。

据我了解,调用stopPropagation()应该阻止 DOM 事件到达地图本身。

为什么看起来stopPropagation()被忽略了?

我怎样才能在地图内渲染一个 div而不让它的事件冒泡到地图本身?

这是一个显示问题的示例代码笔

import { Map, TileLayer } from 'react-leaflet';

const MyMap = props => (
  <Map zoom={13} center={[51.505, -0.09]}>
    <TileLayer url={"http://{s}.tile.osm.org/{z}/{x}/{y}.png"} />

    {/* 
          HOW do I get this div to NOT pass it's events down to the map?!?! 
          Why does e.stopPropagation() appear to not work?
    */}
    <div 
      id="zone"
      onClick={e => e.stopPropagation()}
      onMouseDown={e …
Run Code Online (Sandbox Code Playgroud)

javascript dom leaflet reactjs react-leaflet

6
推荐指数
1
解决办法
1106
查看次数

破坏的Eclipse项目 - classNotFoundException - 找不到主类

我有一个项目,我一直在Ubuntu 12.04上的Eclipse 3.7.2中开发.最近,我重新构建了包含在包之间移动类的类层次结构.我没有移动我的主类("ob3.converter.Converter"),它包含我的public static void main(String[] args)方法.

现在,当我尝试运行它时,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: ob3/converter/Converter
Caused by: java.lang.ClassNotFoundException: ob3.converter.Converter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: ob3.converter.Converter. Program will exit.
Run Code Online (Sandbox Code Playgroud)

我只是用Eclipse工作(在java中),它为我处理所有开销 - 因此我对这个错误或者可能导致错误的理解很少.我查看了我的运行配置/类路径等,但不知道该寻找什么,它没有结果.

有人能指出我正确的方向吗?我用谷歌搜索/搜索SO,大多数事情谈论一个清单文件,但我一直无法在任何地方找到它.我的工作区文件夹只包含我的源文件.

我可以验证:

  • "转换器"类存在于包"ob3.converter"中.
  • "转换器"类包含一种public static void main(String[] args)方法.
  • "项目属性"中"Java构建路径"页面上的"源"选项卡显示"converter/lib"和"converter/src" - 这两个文件夹包含我的整个项目源.
  • Run Configuration/JRE中使用的JRE是"java-6-openjdk-amd64".
  • "运行配置"中的"类路径"选项卡如下所示:
    • Boostrap条目:
      • JRE系统库[java-6-openjdk-amd64]
    • 用户条目:
      • 转换器(默认类路径)
        • 变流器
  • 自上次成功运行以来,Converter.java的路径没有改变.

很感谢任何形式的帮助!

java eclipse noclassdeffounderror classnotfoundexception

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

是否有一个可选的TOP子句任何现有的,优雅的,模式?

取(简化的)存储过程定义这里:

create procedure get_some_stuffs
  @max_records int = null
as
begin
  set NOCOUNT on

  select top (@max_records) *
  from my_table
  order by mothers_maiden_name
end
Run Code Online (Sandbox Code Playgroud)

我想限制所选记录的数量,如果只 @max_records提供。

问题:

  1. 真正的查询是肮脏和大; 我想避免重复此操作:

    if(@max_records is null)
    begin
      select *
      from {massive query}
    end
    else
    begin
      select top (@max_records)
      from {massive query}
    end
    
    Run Code Online (Sandbox Code Playgroud)
  2. 任意定点值感觉不对:

    select top (ISNULL(@max_records, 2147483647)) *
    from {massive query}
    
    Run Code Online (Sandbox Code Playgroud)

    例如,如果@max_recordsnull{massive query}返回小于2147483647行,这将是相同的:

    select * 
    from {massive query}
    
    Run Code Online (Sandbox Code Playgroud)

    或者是有某种惩罚的选择top (2147483647) *从表中只有50行? …

sql sql-server

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

是否可以从脚本内打开 VSCode 内的新终端?

我想通过一个命令启动 3 个服务器。

我有package.json这样的脚本:

"serve_auth": "cd dev/mock/auth && nodemon --exec babel-node ./server.js --presets @babel/env",
"serve_db": "cd dev/mock/db && nodemon --exec babel-node ./server.js --presets @babel/env",
"start": "react-scripts start",
"develop": "./launch_script.sh"
Run Code Online (Sandbox Code Playgroud)

我有一个launch_script.sh像这样的脚本:

#!/bin/bash

( yarn serve_db ) & ( yarn serve_auth ) & ( yarn start )
Run Code Online (Sandbox Code Playgroud)

但这会在一个终端窗口中将它们全部打开,最终它们会互相绊倒。

我知道您可以从 VSCode GUI 打开新终端,但是是否可以从其中打开新终端?或者告诉 VSCode 打开 3 个终端,每个终端使用一个单独的命令?

visual-studio-code

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

Windows下package.json脚本中设置环境变量

您可以使用“SET”命令在 Windows 中设置环境变量:

set NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)

您可以在 package.json 文件中指定短脚本:

"scripts": {
    "buildDev": "set NODE_ENV=development && webpack",
    "buildProd": "set NODE_ENV=production && webpack",
}
Run Code Online (Sandbox Code Playgroud)

这些工作完美,除了一件事:NODE_ENVwebpack 开始执行我的配置文件时的值是"development "- 注意尾随空格。

这会阻止我的配置文件检测到正确的环境(通过process.env.NODE_ENV)并返回适当的配置。

javascript windows environment-variables node.js webpack

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

Javascript 中的 16 位二进制算术

JavaScript 只有一种数字类型:64 位浮点数。

C使用 Javascript,我需要实现一个哈希算法,该算法设计为用 16 位无符号整数写入。

主要操作是这样的(伪代码):

uint16 n = 0;
string s = "abcd1234";

for (int i = 0; i < s.length; i += 1) {
    n ^= (n << 2) + (n >> 3) + s[i];
}

return n;
Run Code Online (Sandbox Code Playgroud)

当然,当使用值时,这会产生一个结果,而如果是 64 位浮点,则会产生uint16不同的结果。n

到目前为止,我对该问题的最佳解决方案是使用如下函数(javascript)将每个按位运算的结果转换为 <= 16 位:

function uint16 (n) {
    return parseInt(n.toString(2).slice(-16), 2);
}
Run Code Online (Sandbox Code Playgroud)

并执行如下操作(javascript):

for (var i = 0; i < s.length; i +=1 ) {
    n ^= uint16(uint16(n << 2) + …
Run Code Online (Sandbox Code Playgroud)

javascript c bit-manipulation bit-shift bitwise-operators

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

如何解决“未找到规则‘@typescript-eslint/rule-name’的定义”

我正在尝试将 TypeScript 编译添加到现有的 Javascript 项目中。

AFAIK 这应该是可能的(甚至很容易),您可以通过代码库逐步传播 TS。不幸的是,这不是我所看到的 - 添加打字稿并尝试启动项目后,项目中的每个文件都出现此错误:

Definition for rule '@typescript-eslint/rule-name' was not found

在此处输入图片说明

rule-name我的源代码中的任何地方都没有该字符串的实例。

这是我的tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "src",
    "noImplicitAny": false,
    "sourceMap": true,
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "esModuleInterop": true,
    "jsx": "react",
    "skipLibCheck": true
  },
  "include": [
    "src",
    "types"
  ],
  "exclude": [
    "node_modules",
    "build"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试添加"checkJs": false到配置并重新启动,但这并没有改变任何东西。

我一直无法在网上找到有关此“规则名称”问题的任何信息。看起来这确实是某种占位符文本,但我找不到来源。 …

javascript build typescript

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

VBA使用UTF-16输出到文件

我有一个非常复杂的问题很难解释.互联网上有很多关于这方面的讨论,但没有任何确定性.非常感谢任何帮助,或比我更好的解释.

本质上,我只是尝试使用带有VBA的UTF-16编写XML文件.

如果我这样做:

sXML = "<?xml version='1.0' encoding='utf-8'?>"
sXML = sXML & rest_of_xml_document
Print #iFile, sXML
Run Code Online (Sandbox Code Playgroud)

然后我得到一个有效的XML文件.但是,如果我将"encoding ="更改为"utf-16",我会从XML验证器中收到此错误:

Switch from current encoding to specified encoding not supported.

谷歌搜索告诉我,这意味着xml编码属性与文件使用的ACTUAL编码不同,因此我必须通过打开和打印命令创建utf-8文档.

如果我这样做:

With CreateObject("ADODB.Stream")
  .Type = 2
  .Charset = "utf-16"
  .Open
  .WriteText sXML
  .SaveToFile sFilename, 2
  .Close
End With
Run Code Online (Sandbox Code Playgroud)

然后我在文件的开头有一些时髦的字符(BOM),导致它无法通过XML验证.

如果我在Notepad ++中打开文件,删除BOM并将编码更改为"UCS-2",然后文件使用"utf-16"编码值进行验证(意味着UCS-2足够接近UTF-16无关紧要,或者XML能够Switch from current encoding在这两种类型之间.

我需要使用UTF-16,因为UTF-8不包括我正在导出的演示文稿中使用的所有字符.

问题:

如何让VBA像Notepad ++一样运行,创建一个UTF-16编码的文本文件,而没有可以填充XML数据的BOM?任何帮助非常感谢!

xml vba byte-order-mark utf-16

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

如何避免路径冲突?

<Product>我想在用户访问时呈现 a /Products/1

<CreateProduct>我想在用户访问时呈现 a /Products/new

我的路由器看起来像这样:

<Route exact path="/Products/new" component={CreateProduct} />
<Route exact path="/Products/:productId" component={Product} />
Run Code Online (Sandbox Code Playgroud)

如果用户浏览到/Products/new,它会匹配两个路由并导致Product组件抛出错误 re: not find a products with the id new

我在反应路由器文档中找不到任何内容来避免这种情况。我可能会使用这个黑客,但必须有一个“更好”的方法:

<Route exact path="/Products/new" component={CreateProduct} />
<Route exact path="/Products/:productId" render={renderProduct} />
Run Code Online (Sandbox Code Playgroud)

使用函数来渲染<Product>路线:

const renderProduct = props =>
  props.match.params.productId === 'new'
    ? null
    : <Product {...props} />;
Run Code Online (Sandbox Code Playgroud)

javascript jsx reactjs react-router

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

CSS 过渡高度和填充

我有一个 ReactJS 固定高度的子组件,我想使用transition: height.

.slider-enter {
    height: 0;
}

.slider-enter.slider-enter-active {
    height: 3pc;
    transition: height 1s ease-in;
}

.slider-leave {
    height: 3pc;
}

.slider-leave.slider-leave-active {
    height: 0;
    transition: height 1s ease-in;
}
Run Code Online (Sandbox Code Playgroud)

这很有效,但是有问题的组件也有 aborder-top和 some padding-top。这不包括在高度过渡中,因此过渡不平滑。

例如:在“输入”时,边框和填充立即变得可见,然后组件的其余部分按预期显示。

jsbin 示例

我的问题:

您如何在transition: height规则中包含填充和边框的高度,或者是否有任何其他方法可以消除此问题?

任何 post-jsbin 世界的源代码副本:

反应组件:

var Box = React.createClass({
  getInitialState: function () {
      return {
          open: false
      };
  },
  render: function () {
    var stuffs = this.state.open ? <div className="sub" /> : …
Run Code Online (Sandbox Code Playgroud)

javascript css css-animations reactjs

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