我正在开发一个前端方法很重的Web应用程序.通过使用Dojo和AMD方式,我目前有测试屏幕,可以轻松加载超过一百个不同的JavaScript文件.
当我想针对任何特定问题进行调试,或者验证我是否看到特定文件的旧版本时,我发现很难在Chrome开发者工具的"源"选项卡中找到我的文件.
是否有任何快捷方式或操作可以让我输入文件的名称并将我带到该文件的来源?
javascript debugging frontend google-chrome google-chrome-devtools
我记得有一个特定的命令可以放在谷歌Chrome的检查器控制台上,以便加载jQuery并允许你执行jQuery命令.
但是,我不记得它是哪个命令,在线搜索只会给我带来无关的结果.
谁知道那个命令是哪个?
谢谢!
编辑:多年后,我意识到我$$在控制台中要求这个功能.但是,这不是jQuery,而是提供了类似的选择器选项,很可能是简写document.querySelectorAll.这里的答案解决了添加jQuery for real及其所有功能的问题.
这是我第一次使用yeoman为AngularJS应用程序设置脚手架,我不得不承认我可能是nodeJS,grunt和bower世界的新手.
所以,这是我到目前为止所做的:
我确保安装了yeoman,grunt-cli和角度发生器包
npm install -g yo grunt-cli bower
npm install -g generator-angular
Run Code Online (Sandbox Code Playgroud)生成我的应用程序
yo angular
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
yo angular --min-safe
Run Code Online (Sandbox Code Playgroud)到目前为止,al似乎很好.在给出的选项之间,我选择Twitter Bootstrap,没有角度依赖,并覆盖我的本地.gitignore文件.
毕竟,我尝试运行我的应用程序:
grunt serve
Run Code Online (Sandbox Code Playgroud)
此时,grunt抱怨说它没有在本地安装到项目中,所以我运行:
npm install grunt --save-dev
Run Code Online (Sandbox Code Playgroud)
再也没有,试图运行该应用程序:
grunt serve
Run Code Online (Sandbox Code Playgroud)
这就是我被封锁的地方:
C:\Projects\what-now>grunt serve
Running "serve" task
Running "clean:server" (clean) task
Running "concurrent:server" (concurrent) task
Running "copy:styles" (copy) task
Done, without errors.
Warning:
C:\Projects\what-now\node_modules\grunt-contrib-compass\node_modules\tmp\lib\tmp.js:261
throw err;
^
TypeError: Cannot read property 'stdout' of undefined
at compile (C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\compass.js:37:10)
at C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\compass.js:68:7
at C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\lib\compass.js:121:11
at _fileCreated (C:\Projects\what-now\node_modules\grunt-contrib-compass\node_modules\tmp\lib\tmp.js:172:7)
at C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\rimraf\node_modules\graceful-fs\graceful-fs.js:53:5
at C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\rimraf\node_modules\graceful-fs\graceful-fs.js:62:5 …Run Code Online (Sandbox Code Playgroud) 什么是LINQ等价物
Select DISTINCT A, B, C from TESTDB WHERE ALPHA =1
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样的事情:
var data = TESTDB.WHERE(i=>i.ALPHA==1).SELECT(A,B,C).DISTINCT();
Run Code Online (Sandbox Code Playgroud) 我已经苦苦挣扎了几个小时,没有好结果.我正在尝试使用.NET JSON Serializers将JSON从UI来回转换为对象.
问题出现在小数位上,因为我的文化标准有","作为小数分隔符而不是".".我已经尝试实现自定义转换器(请参阅此问题),但效果不佳.
我还检查了NewtonSoft JSON.net没有更好的结果.到目前为止,似乎与价值类型的匹配是文化不变的.我想覆盖这种行为,该怎么做?
顺便说一句,我真的希望避免在javascript端进行本地化.我绝对希望.NET能够处理跨文化格式化和本地化,我不认为应该有像我用这个序列化器一样的异常,我的猜测是应该有一个正确的方法来做到这一点.
提前致谢.
我有一个标准的CSS菜单,用UL和LI标签制作.我需要它们来横向覆盖整个页面(不是我的实际案例,但我会采取这种方式来简化这种情况).但是,项目是动态创建的,因此我无法将任何内容硬编码到LI项目或边距.
我已经看到使用JavaScript设置这些值的解决方案,但我真的很想避免它们.
最后,我看到了一个非常好的解决方案
#menu {
width: 100%;
/* etc */
}
#menu ul {
display: table;
}
#menu ul li {
display: table-cell;
}
Run Code Online (Sandbox Code Playgroud)
这将在大多数浏览器中创建所需的行为......除了IE.
有任何想法吗?
编辑:感谢您的回复.但是,由于生成项目的代码不是我的,我在创建它们时无法在不使用JavaScript的情况下设置内联样式.
(您可以直接跳到问题,但上下文位于背景部分.)
技术背景
背景:
和其他几个一样,我使用IIS,有时我需要设置一个本地版本的站点.现在,在设置不同的站点时,为它们分配不同的端口以使它们不重叠是很常见的.因此,您可以将您的站点A设置为端口80,将站点B设置为端口81,依此类推.
现在,我想设置绑定,以便我能够在端口80下拥有多个站点,并且具有标题主机区别,我可以同时为这些站点提供有意义的URL.
执行此操作的选项是向hosts文件添加条目,例如:
127.0.0.1 siteA.com
127.0.0.1 siteB.com
Run Code Online (Sandbox Code Playgroud)
有了这个,您应该能够浏览到siteA.com或siteB.com并在本地工作.
但是我想再多做一步,因为localhost已经设置为匹配127.0.0.1,所以:
题:
我已将IIS绑定设置为:
site host header port
siteA siteA.localhost 80
siteB siteB.localhost 80
Run Code Online (Sandbox Code Playgroud)
我希望我能够浏览到http://siteA.localhost/和http://siteB.localhost/并获取我的网站.
但是,当我浏览时,似乎我的请求永远不会到达IIS,并且地址未解析.
为什么不工作?
更新:
我选择了chue x的答案,因为他解释了为什么这不起作用.对于那些可能遵循相同路径的人,你可能会认为"好吧,我可以添加*.localhost主机文件,它应该完成." 甚至切换到*.local或*.localdev.com类似的东西.
但是,这不起作用:Windows主机文件中的通配符
正如chue x指出的那样,我们现在唯一的方法是不断向hosts文件添加条目,或者如何在链接的问题中解释,使用另一个DNS服务器.
我正在尝试为某种IExecutable接口进行设计.我不会详细介绍,但重点是我有几个需要从基类执行的动作.它们可能采用不同的参数(没什么大不了的),它们可能/可能不会返回值.
到目前为止,这是我的设计:
public abstract class ActionBase
{
// ... snip ...
}
public abstract class ActionWithResultBase<T>: ActionBase
{
public abstract T Execute();
}
public abstract class ActionWithoutResultBase: ActionBase
{
public abstract void Execute();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的每个具体动作都需要来自ActionWithResultBase或ActionWithoutResult基础的孩子,但我真的不喜欢这样.如果我可以将Execute的定义移动到ActionBase,考虑到具体类可能会或可能不会返回值,我将实现我的目标.
有人告诉我这可以通过使用Func和Action完成,我完全同意,但是我找不到将其转换为单个类的方法,以便调用者知道操作是否将返回值或不.
简介:我想做的事情如下:
// Action1.Execute() returns something.
var a = new Action1();
var result = a.Execute();
// Action2.Execute() returns nothing.
var b = new Action2();
b.Execute();
Run Code Online (Sandbox Code Playgroud) 我想获得一个按优先级排序的三个属性的列表
我的代码在这里
MyList
.OrderByDescending(p => p.ToDate)
.OrderByDescending(p => p.Number)
.OrderByDescending(p => p.RunDate)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但结果不正确.
例如,当MyList包含两个元素:e1,e2和e1.ToDate> e2.ToDate时,结果为e2.
哪个属性应该先来?具有最高优先级(ToDate)或最低优先级(RunDate)的属性?
我正在使用MVC Mini分析器来检查我的应用程序的特定部分的速度,并希望将其保留在那里以防万一发生以后的事情,我可能需要检查"出了什么问题".它不是一个完整的日志集,但它非常方便地知道什么使页面花了很长时间.
因此,我的目标是隐藏它并仅在请求带有特定参数时才对其进行配置.但是,我的尝试都没有像我期望的那样奏效.
这已经完成了不在屏幕上显示它的技巧(视图中的代码):
@if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
}
Run Code Online (Sandbox Code Playgroud)
这是接近的尝试.正确隐藏迷你探查器信息,但是在我显示它的那一刻,它会描述所有内容,因为我停止显示它.所以,假设我描述了我的页面,需要3秒钟.我删除了查询参数并再次加载页面三次.我再次添加我的参数,我看到4组配置文件信息.这意味着它会记录所有内容,我想知道它是否会给内存带来问题.
尝试不再发生这种情况:
尝试1:
protected void Application_BeginRequest()
{
if (Request.QueryString.AllKeys.Contains("showProfiler"))
{
MiniProfiler.Start();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试2:
protected void Application_EndRequest()
{
MiniProfiler.Stop(!Request.QueryString.AllKeys.Contains("showProfiler"));
}
Run Code Online (Sandbox Code Playgroud)
尝试3:
protected void Application_EndRequest()
{
MiniProfiler.Stop(true);
}
Run Code Online (Sandbox Code Playgroud)
这些都没有奏效.有任何想法吗?