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?
在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中的装饰会是什么样子.
我在控制台应用程序中使用CodePlex的Razor 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) 我按照这个官方帮助页面进行了操作,并参考了之前的SO问题.
但我仍然不知道这里有什么问题.
让我们一步一步:
确保程序包服务器正在运行.从截图中,您可以看到我键入的命令"react-native run-android"和响应"Starting JS server ..."
确保您的设备已连接...是的,Vysor会看到我的设备.我们看到Vysor在屏幕截图中显示了应用程序.
... 启用USB是的,应用程序正在运行,这就是为什么我们看到红色的错误屏幕,但它仍然在运行的应用程序.
运行"adb reverse tcp:8081 tcp:8081"是的,屏幕截图显示我运行了命令.
设备和端口......是的,也是这样做的.见下一个截图
我还做错了什么?我怎样才能使它工作?
什么是更快,我应该牺牲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),我不知道它是如何更好的.
我在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中?
我有一个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中使用.
这会产生循环依赖问题吗?这种设计会有问题吗?
我的应用程序被设计为一系列尚未编写的插件.这有很长一段时间的原因,但每次新的一年,业务逻辑都会有所不同,我们不知道它会是什么样的(想想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) 在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) 下面的代码行严重崩溃
\n\nRoom.databaseBuilder(\n applicationContext,\n MyDatabase::class.java, "MyDB")\n .build()\nRun Code Online (Sandbox Code Playgroud)\n\n这是您可以轻松复制的最小完整可验证 (MCV) 应用程序
\n\n在项目的 build.gradle 中,确保存在以下内容
\n\nallprojects {\n repositories {\n google()\n jcenter()\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n在应用程序的 build.gradle 中,确保存在以下内容
\n\ndependencies {\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}\nRun 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
//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)\nRun Code Online (Sandbox Code Playgroud)\n\n创建第二个文件,名为MyDao.kt
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) javascript ×2
.net ×1
ajax ×1
android ×1
android-room ×1
c# ×1
dictionary ×1
forms ×1
iframe ×1
jquery-ui ×1
linq ×1
petapoco ×1
razor ×1
react-native ×1
reflection ×1
regex ×1