小编Kev*_*nle的帖子

如何使用JavaScript替换此字符串中的所有字符:replace.按_

JavaScript中的以下语句按预期工作:

var s1 = s2.replace(/ /gi, '_'); //replace all spaces by the character _
Run Code Online (Sandbox Code Playgroud)

但是,要替换所有出现的字符.由角色_,我有:

var s1 = s2.replace(/./gi, '_');
Run Code Online (Sandbox Code Playgroud)

但结果是一个字符串完全填充了字符_

为什么以及如何更换.通过_使用JavaScript?

javascript regex

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

在PetaPoco中,如何装饰具有多列主键的表

在PetaPoco网站上给出的例子中,这是如何装饰一个类:

[PetaPoco.TableName("articles")]
[PetaPoco.PrimaryKey("article_id")]
public class article
{
    public long article_id { get; set; }
    public string title { get; set; }
    public DateTime date_created { get; set; }
    public bool draft { get; set; }
    public string content { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是假设表格文章被建模为有两列:article_id和title作为主键(而不仅仅是article_id),那么PetaPoco中的装饰会是什么样子.

petapoco

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

在控制台应用程序中使用Razor Engine

我在控制台应用程序中使用CodePlexRazor Engine.当我在VS 2010 IDE中以调试模式运行时,一切正常.从shell开始,即使是上面CodePlex页面上的示例中的简单2-liner也会失败.所以我不认为这是代码.异常消息是通用的,因为它可以是:

RazorEngine.Templating.TemplateCompilationException: Unable to compile template.
Run Code Online (Sandbox Code Playgroud)

引用的所有DLL(在References部分中)都与工作目录中的.exe一起存在,它是控制台应用程序本身.我不会把整个列表在这里,但这里有一些我认为是相关的:System.Web程序,System.Web.Mvc,System.Web.Razor,RazorEngine,等我不认为DLL文件,如系统,System.Xml等甚至需要在那里,但为了消除任何意外,我还是将它们复制到那里.重点是将References部分中的任何内容复制到exe所在的工作目录中.令人惊讶的是它仍然无效.我怎样才能找出缺少的东西或者让这个东西起作用?

编辑我刚创建了一个裸骨控制台应用程序来演示我的观点.这是整个计划.正如我所提到的,它在IDE内部工作正常,而不是在shell中.

using System;
using RazorEngine;

namespace RazorEngineTest
{
    public class Program
    {
        public static void Main(string[] args)
        {            
            string template = "Hello @Model.Name! Welcome to Razor!";
            string result = Razor.Parse(template, new { Name = "World" });
            Console.WriteLine(result);
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

console-application razor

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

在设备上运行React Native Android

我按照这个官方帮助页面进行了操作,并参考了之前的SO问题.

但我仍然不知道这里有什么问题.

在此输入图像描述

让我们一步一步:

  1. 确保程序包服务器正在运行.从截图中,您可以看到我键入的命令"react-native run-android"和响应"Starting JS server ..."

  2. 确保您的设备已连接...是的,Vysor会看到我的设备.我们看到Vysor在屏幕截图中显示了应用程序.

  3. ... 启用USB是的,应用程序正在运行,这就是为什么我们看到红色的错误屏幕,但它仍然在运行的应用程序.

  4. 运行"adb reverse tcp:8081 tcp:8081"是的,屏幕截图显示我运行了命令.

  5. 设备和端口......是的,也是这样做的.见下一个截图

在此输入图像描述

我还做错了什么?我怎样才能使它工作?

react-native react-native-android

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

字典查找(O(1))vs Linq在哪里

什么是更快,我应该牺牲Linq标准来实现速度(假设字典查找真的更快)?那么让我详细说明一下:

我有以下内容:

List<Product> products = GetProductList();
Run Code Online (Sandbox Code Playgroud)

我需要根据某些属性搜索产品,例如序列号.我可以先创建一个字典,然后填充如下:

Dictionary<string, Product> dict = new Dictionary<string, Product>();
foreach(Product p in products)
{
    dict.Add(p.serial, p);
}
Run Code Online (Sandbox Code Playgroud)

在找到产品的时候,利用字典查找提供的O(1):

string some_serial = ...;
try { Product p = dict[some_serial]; } catch(KeyNotFoundException) { }
Run Code Online (Sandbox Code Playgroud)

或者,使用Linq:

Product p = products.Where(p => p.serial.Equals(some_serial)).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

Dict方法的缺点当然是这需要更多的内存空间,更多的代码来编写,更不优雅等等(尽管这大部分是有争议的).假设这是非因素.我应该采取第一种方法吗?

最后,我想确认上面的Linq方法的复杂性是否确实是O(n),我不知道它是如何更好的.

linq complexity-theory dictionary time-complexity

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

使用jQuery选择iframe中的表单

我在iframe中有一个表单,它位于jQuery UI对话框中.表单包含文件输入类型.jQuery UI对话框包含一个Upload按钮.单击此按钮时,我想以编程方式调用submit方法.我的问题是如何使用jQuery选择iframe中的表单.以下代码应阐明图片:

<div id="upload_file_picker_dlg" title="Upload file">        
    <iframe id="upload_file_iframe" src="/frame_src_url" frameborder=0 width=100% scrolling=no></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)

frame_src_url包含:

<form action="/UploadTaxTable" enctype="multipart/form-data" method="post" id="upload-form">            
<p>Select a file to be uploaded:</p>
<p>
    <input type="file" name="datafile" size="60">
</p>
Run Code Online (Sandbox Code Playgroud)

jQueryUI对话框的javascript代码:

$('#upload_file_picker_dlg').dialog({
    ...
    buttons: {
        'Close': function() { 
            $(this).dialog('close'); 
        },
        'Upload': function() {              
            $('#upload-form').submit(); //question is related to this line
            $(this).dialog('close'); 
        }
    },
    ....
});
Run Code Online (Sandbox Code Playgroud)

从上面的javascript代码段中,如何选择id为upload upload-form的表单,该表单位于iframe为upload_file_iframe的iframe中?

forms iframe jquery-ui

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

.NET中的循环DLL依赖项

我有一个DLL,它提供ASP.MVC应用程序的入口点.我们称之为Primary.DLL.在Primary.DLL中,有LINQ-to-SQL数据上下文和其他定义的类.在某处Application_Start(), Assembly.Load()调用加载Secondary.DLL.辅助节点未在Primary.DLL的项目文件中引用.但是在Secondary.DLL的项目文件中引用了Primary,因为LINQ-to-SQL数据上下文和上面提到的其他类在Secondary中使用.

这会产生循环依赖问题吗?这种设计会有问题吗?

.net circular-dependency

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

让服务器返回一个JavaScript函数然后被调用的干净方法是什么?

我的应用程序被设计为一系列尚未编写的插件.这有很长一段时间的原因,但每次新的一年,业务逻辑都会有所不同,我们不知道它会是什么样的(想想TurboTax,如果有帮助的话).插件由服务器和客户端组件组成.服务器组件处理业务逻辑并将数据持久保存到数据库表中,数据库表也将在以后创建.JavaScript操纵DOM以供浏览器在之后呈现.

每个插件都存在于一个单独的程序集中,因此它们不会干扰主应用程序,即我们不想重新编译主应用程序.简而言之,我正在寻找一种从Ajax get请求返回JavaScript函数到客户端的方法,并执行这些JavaScript函数(刚刚返回).在Javascript中调用函数很容易.困难的部分是如何组织或结构,以便我不必处理维护问题.因此,使用StringBuilder结束使用JavaScript代码作为从字符串构建器对象调用toString()的结果是不可能的.

我希望在正常编写JavaScript代码和为此动态目的编写Javascript代码之间没有区别.

另一种方法是在服务器端操作DOM,但我怀疑它在客户端使用jQuery会有多优雅.我对一个C#库开放,它支持像jQuery这样的可链接调用,它也可以操作DOM.

你有什么想法,或者问得太多,或者你太困惑了?

Edit1:重点是避免重新编译,因此插件架构.在程序的其他一些部分,我已经使用了动态加载Javascript文件的概念.这很好.当我向服务器发送Ajax请求时,我在这里看到的是程序中间的某个地方.

编辑2:说明我的问题:

通常,您会看到以下代码.将Ajax请求发送到服务器,将JSON结果返回给客户端,然后客户端使用jQuery来操作DOM(在这种情况下创建标记并添加到容器中).

var container = $('#some-existing-element-on-the-page');
$.ajax({
    type: 'get',
    url: someUrl,
    data: {'': ''},
    success: function(data) {                                                   
      var ul = $('<ul>').appendTo(container);

      var decoded = $.parseJSON(data);                
      $.each(decoded, function(i, e) {
         var li = $('<li>').text(e.FIELD1 + ',' + e.FIELD2 + ',' + e.FIELD3)
            .appendTo(ul);
      });                
    }        
});
Run Code Online (Sandbox Code Playgroud)

以上非常简单.但是明年,服务器返回的内容完全不同,呈现的数据也会有所不同.在某种程度上,这就是我想要的:

var container = $('#some-existing-element-on-the-page');
$.ajax({
    type: 'get',
    url: someUrl,
    data: {'': ''},
    success: function(data) {                           
      var decoded = $.parseJSON(data); 
      var fx = decoded.fx;
      var data …
Run Code Online (Sandbox Code Playgroud)

javascript ajax

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

在基类中定义一个返回其自身名称的方法(使用反射) - 子类继承此行为

在C#中,使用反射,是否可以在基类中定义返回其自己的名称(以字符串形式)的方法,并且子类以多态方式继承此行为?

例如:

public class Base
{
    public string getClassName()
    {
        //using reflection, but I don't want to have to type the word "Base" here.
        //in other words, DO NOT WANT  get { return typeof(Base).FullName; }
        return className; //which is the string "Base"
    }
}

public class Subclass : Base
{
    //inherits getClassName(), do not want to override
}

Subclass subclass = new Subclass();
string className = subclass.getClassName(); //className should be assigned "Subclass"  
Run Code Online (Sandbox Code Playgroud)

c# reflection

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

房间数据库构建器构建崩溃

下面的代码行严重崩溃

\n\n
Room.databaseBuilder(\n        applicationContext,\n        MyDatabase::class.java, "MyDB")\n        .build()\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是您可以轻松复制的最小完整可验证 (MCV) 应用程序

\n\n

在项目的 build.gradle 中,确保存在以下内容

\n\n
allprojects {\n    repositories {\n        google()\n        jcenter()\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在应用程序的 build.gradle 中,确保存在以下内容

\n\n
dependencies {\n    def room_version = "1.1.1"\n\n    implementation "android.arch.persistence.room:runtime:$room_version"\n    kapt  "android.arch.persistence.room:compiler:$room_version" // because I\'m using Kotlin\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

所有设置说明均按照官方文档https://developer.android.com/topic/libraries/architecture/adding-components

\n\n

现在只需使用 Android Studio 并使用“空活动”模板创建一个项目。此 MCV 示例中仅需要 3 个新文件。

\n\n

创建第一个文件,名为MyThing.kt

\n\n
//MyThing.kt\nimport android.arch.persistence.room.ColumnInfo\nimport android.arch.persistence.room.Entity\n\n@Entity(tableName = "myThing")\ndata class MyThing(@ColumnInfo var myString: String)\n
Run Code Online (Sandbox Code Playgroud)\n\n

创建第二个文件,名为MyDao.kt

\n\n
import android.arch.persistence.room.Dao\nimport android.arch.persistence.room.Insert\nimport android.arch.persistence.room.OnConflictStrategy\n\n@Dao\ninterface MyDao {\n    @Insert(onConflict …
Run Code Online (Sandbox Code Playgroud)

android android-room

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