我想通过运行此命令从Mac OSX终端运行/打开Visual Studio代码code ..我在这里找到了说明:
https://code.visualstudio.com/Docs/setup
显然我需要在我的.bashrc文件中包含这个,所以我做了,但无济于事.
code () {
if [[ $# = 0 ]]
then
open -a "Visual Studio Code"
else
[[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
open -a "Visual Studio Code" --args "$F"
fi
}
Run Code Online (Sandbox Code Playgroud)
我在.bashrc这里编辑了文件:
~/.bashrc 哪个指向 /Users/username/.bashrc
.bashrc我应该编辑哪个?
我正在使用ASP.NET MVC,我希望所有用户输入的字符串字段在插入数据库之前进行修剪.由于我有很多数据输入表单,我正在寻找一种优雅的方法来修剪所有字符串,而不是明确地修剪每个用户提供的字符串值.我很想知道人们如何以及何时修剪弦乐.
我想也许创建一个自定义模型绑定器并修剪那里的任何字符串值......这样,我所有的修剪逻辑都包含在一个地方.这是一个好方法吗?是否有任何代码示例执行此操作?
我的同事一直在使用带有小写"f"的"new function()"来定义JavaScript中的新对象.它似乎在所有主流浏览器中运行良好,并且在隐藏私有变量方面似乎也相当有效.这是一个例子:
var someObj = new function () {
var inner = 'some value';
this.foo = 'blah';
this.get_inner = function () {
return inner;
};
this.set_inner = function (s) {
inner = s;
};
};
Run Code Online (Sandbox Code Playgroud)
一旦使用"this",它就成为someObj的公共财产.所以someObj.foo,someObj.get_inner()和someObj.set_inner()都是公开的.另外,set_inner()和get_inner()是特权方法,因此它们可以通过闭包访问"内部".
但是,我在任何地方都没有看到任何对此技术的引用.甚至Douglas Crockford的JSLint抱怨它:
- 怪异的建筑.删除'新'
我们在生产中使用这种技术,它似乎运作良好,但我有点担心它,因为它没有在任何地方记录.有谁知道这是否是一种有效的技术?
在Windows上使用VSCode时,我可以浏览文件资源管理器并点击Enter焦点文件,文件将在编辑器中打开.但是,在我的Mac上,当我这样做时,VSCode将打开重命名输入,如下所示:
我不确定为什么会这样做.即使在其他文本编辑器(例如Atom)中,默认行为是打开文件Enter.有没有办法改变这种行为,以便打开文件Enter?到目前为止我找到的唯一解决方法是CTRL+ Enter,它在新窗格中打开文件,但在VSCode中有3个窗格限制,这是非常有限的.
React Native使用flexbox进行布局.在我看过的所有例子中,他们做了这样的事情:
var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row'
}
});
Run Code Online (Sandbox Code Playgroud)
我很好奇这个flex: 1部分.根据Chris Coyier的定义https://css-tricks.com/snippets/css/a-guide-to-flexbox/,flex: 1应该是相同的flex-grow: 1,但对我来说,它看起来像flex: 1在React Native中相当于display: flexCSS.
这是一个CodePen,它演示flex: 1了React Native示例使用它的方式在CSS中没有做任何事情:
http://codepen.io/johnnyo/pen/BoKbpb
直到我们display: flex在CSS中使用,直到flexbox开始工作:
http://codepen.io/johnnyo/pen/epZXgz
那么这是否意味着flex: 1React Native相当于display: flexCSS?
我正在使用React Native,一旦我引入ScrollView,我就无法保留元素的垂直居中.为了演示,我使用React Native Playground创建了3个应用程序.所有示例都有2页,可以通过点击蓝色按钮来切换它们.
例1:
第一个示例显示了在第2页上垂直居中的块.这是因为容器已应用这些样式:
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
Run Code Online (Sandbox Code Playgroud)
https://rnplay.org/apps/lb5wSQ
但是,一旦切换到第2页就会出现问题,因为页面的整个内容都不合适,所以我们需要一个ScrollView.
例2
在这个例子中,我将所有内容都包装在ScrollView中.这允许第2页滚动,但现在我丢失了第1页的垂直居中.
https://rnplay.org/apps/DCgOgA
例3
为了试图找回1的垂直居中,我申请flex: 1到了contentContainerStyle滚动型的.这修复了第1页的垂直居中,但我不再能够一直向下滚动到第2页的底部.
https://rnplay.org/apps/LSgbog
我如何解决这个问题,以便我在第1页上获得元素的垂直居中,但仍然可以让ScrollView一直滚动到第2页的底部?
我想比较SQL Server 2012和SQL Azure之间的模式,但我在Visual Studio 2013中遇到此错误:
将SQL Server 2012指定为目标平台的项目无法发布到SQL Azure.

是否可以比较这两种数据库类型?
sql-server visual-studio schema-compare visual-studio-2013 azure-sql-database
我在ASP.NET MVC 2中广泛使用Data Annotation验证.这个新功能节省了大量时间,因为我现在能够在一个地方定义客户端验证和服务器端验证.然而,当我做一些详细的测试时,我意识到如果我单独依赖Data Annotation验证,那么很容易绕过服务器端验证.例如,如果我通过使用[Required]属性注释属性来定义必需字段并在表单中放置该必填字段的文本框,则用户可以简单地从DOM中删除文本框(可以通过Firebug轻松完成)现在,在Controller内的ModelBinding期间,不会在该属性上触发数据注释验证.为了确保触发"必需"验证,我可以在ModelBinding发生后重复验证,但后来我会重复我的验证逻辑.
每个人对验证的建议是什么?数据注释验证是否足够?或者是否需要重复验证以确保在所有情况下都能触发验证?
后续评论: 根据以下答案,我似乎不能单独依赖Model Binder和Data Annotation验证.由于我们得出结论认为需要额外的服务器端验证,我的服务层是否有一种简单的方法可以根据数据注释中定义的内容触发验证?看起来这将使我们两个词中最好的...我们不需要重复验证代码,但我们仍然会确保即使Model Binder没有触发它也会执行验证.
我将把这个后续评论作为一个单独的问题发布,因为它提出了一个与原始评论不同的问题.
我想重新打开Ember或Ember Data框架类.使用Ember CLI,在哪里放置这些以使它们获得初始化属性的正确位置?这是我想做的事情的一个例子:
import DS from 'ember-data';
DS.Model.reopen({
rollback: function() {
this._super();
// do some additional stuff
}
});
Run Code Online (Sandbox Code Playgroud) 更新(2010-12-21):根据我一直在做的测试完全重写了这个问题.此外,这曾经是一个POCO特定的问题,但事实证明我的问题不一定是POCO特定的.
我正在使用Entity Framework,我的数据库表中有一个时间戳列,应该用于跟踪乐观并发的变化.我已将实体设计器中此属性的并发模式设置为"已修复",并且我得到的结果不一致.以下是几个简化的场景,它们演示了并发检查在一个场景中工作但在另一个场景中不起作用.
成功抛出OptimisticConcurrencyException:
如果我附加一个断开连接的实体,那么如果存在时间戳冲突,SaveChanges将抛出一个OptimisticConcurrencyException:
[HttpPost]
public ActionResult Index(Person person) {
_context.People.Attach(person);
var state = _context.ObjectStateManager.GetObjectStateEntry(person);
state.ChangeState(System.Data.EntityState.Modified);
_context.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
不抛出OptimisticConcurrencyException:
另一方面,如果我从数据库中检索我的实体的新副本并对某些字段进行部分更新,然后调用SaveChanges(),那么即使存在时间戳冲突,我也不会得到OptimisticConcurrencyException :
[HttpPost]
public ActionResult Index(Person person) {
var currentPerson = _context.People.Where(x => x.Id == person.Id).First();
currentPerson.Name = person.Name;
// currentPerson.VerColm == [0,0,0,0,0,0,15,167]
// person.VerColm == [0,0,0,0,0,0,15,166]
currentPerson.VerColm = person.VerColm;
// in POCO, currentPerson.VerColm == [0,0,0,0,0,0,15,166]
// in non-POCO, currentPerson.VerColm doesn't change and is still [0,0,0,0,0,0,15,167]
_context.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
基于SQL Profiler,看起来Entity Framework忽略了新的VerColm(这是时间戳属性),而是使用最初加载的VerColm.因此,它永远不会抛出OptimisticConcurrencyException.
更新:根据Jan的要求添加其他信息:
请注意,我还在上面的代码中添加了注释,以便与我在执行此示例时在控制器操作中看到的内容一致.
这是更新前我的DataBase中VerColm的值:0x0000000000000FA7
以下是SQL Profiler在执行更新时显示的内容: …
asp.net ×2
asp.net-mvc ×2
react-native ×2
c# ×1
concurrency ×1
ember-cli ×1
ember.js ×1
flexbox ×1
function ×1
javascript ×1
macos ×1
object ×1
poco ×1
scrollview ×1
sql-server ×1
terminal ×1
validation ×1