PropTypes.objectOf
和之间有什么区别PropTypes.shape
?在文档中:
// An object with property values of a certain type
optionalObjectOf: PropTypes.objectOf(PropTypes.number)
Run Code Online (Sandbox Code Playgroud)
VS
// An object taking on a particular shape
optionalObjectWithShape: PropTypes.shape({
color: PropTypes.string,
fontSize: PropTypes.number
})
Run Code Online (Sandbox Code Playgroud)
我objectOf
应该何时使用,何时使用shape
?
我有一个隐藏在页面上的复选框.我明显的第一次尝试如下:
<input type='checkbox' style='display:none' />
Run Code Online (Sandbox Code Playgroud)
但是,我注意到jquery mobile会自动将复选框包装在一个如下所示的div中:
<div class='ui-checkbox'>
<input type='checkbox' style='display:none;' />
</div>
Run Code Online (Sandbox Code Playgroud)
我会假设某种data-
元素会阻止这种额外的样式,但是在文档或其他地方没有找到它.很容易覆盖.ui-checkbox
in css来隐藏它,但更喜欢更加jquery移动标准方法.这样的事情存在吗?
我正在学习一些JS,我希望有人可以用简单的术语向我解释Object.getPrototypeOf()
vs 之间的区别.prototype
function ParentClass() {}
function ChildClass() {}
ChildClass.prototype = new ParentClass();
var mychild = new ChildClass();
var myparent = new ParentClass();
# .getPrototypeOf
Object.getPrototypeOf(ChildClass.prototype) // ParentClass {}
Object.getPrototypeOf(mychild) // ParentClass {}
Object.getPrototypeOf(ParentClass.prototype) // {}
Object.getPrototypeOf(myparent) // ParentClass {}
# .prototype
ParentClass.prototype // ParentClass {}
myparent.prototype // undefined
ChildClass.prototype // ParentClass {}
mychild.prototype // undefined
Run Code Online (Sandbox Code Playgroud)
所以看起来你只能在构造函数上调用.prototype?
还有其他差异吗?
在我的项目中有很多地方我尝试使用内置{0:C}
货币格式显示货币.如果数字为负数,则它将括在括号中的值.我希望它改为使用负号.
我的web.config已将文化设置为auto
,并解析为en-US
.
理想的解决方案是一些全局web.config或其他设置,使{0:C}
显示en-US
文化的负面信号,但我也接受其他,不那么棒的解决方案.
将一个RouteValueDicitonary
或匿名对象传递给@ Url.Action方法(或其任何类似物)时,有没有办法正确传入一个集合对象,或者IEnumerable
它会生成一个与默认模型绑定器兼容的URL?
例如,假设我有这样的动作:
public ActionResult Index(ICollection<int> ids)
{
...do something
}
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我做了这样的事情:
@Url.Action("Index", routeValues:new int[]{1,2,3})
Run Code Online (Sandbox Code Playgroud)
目标是有一个像这样的网址输出:
... /index?ids=1&ids=2&ids=3
Run Code Online (Sandbox Code Playgroud)
但url输出实际上是这样的:
... /index?ids=System.Int[]
Run Code Online (Sandbox Code Playgroud)
我假设目前没有这方面的支持.如果没有,那么在MVC的哪个部分我需要创建一个自定义处理程序或其他什么来覆盖这个默认功能?
我有以下控制器:
public class HelloController
{
public ActionResult Index()
{
return View()
}
public ActionResult Hello()
{
return Json(new{ greeting = "hello, world!" }, JsonRequestBehavior.AllowGet);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,里面Index.cshtml
:
...html stuffs
<script type="text/javascript">
alert("@Html.Action("Hello")");
</script>
Run Code Online (Sandbox Code Playgroud)
我发现,当我在浏览器中访问此URL时,响应内容类型会application/json; charset=utf-8
导致浏览器将html呈现为字符串而不是...网页.
什么是最好的解决方法?
这个代码块有什么区别:
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "upload_url");
xhr.send(some_form_data);
Run Code Online (Sandbox Code Playgroud)
还有这个:
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.upload.addEventListener("load", uploadComplete, false);
xhr.upload.addEventListener("error", uploadFailed, false);
xhr.upload.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "upload_url");
xhr.send(some_form_data);
Run Code Online (Sandbox Code Playgroud)
我已经在博客和其他SO帖子中看到了这两种实现,但没有人解释为什么他们使用其中一个.我现在能找到的唯一区别是后者在默认的Android浏览器上不起作用,而前者似乎只能处理所有事情.
各州的规范google.protobuf.Empty
:
您可以重复使用通用空消息,以避免在 API 中定义重复的空消息。一个典型的例子是将其用作API方法的请求或响应类型。
我一直在内部提倡使用空消息包装器来代替,以保持向后兼容性。例如,假设我们有一个FooService
:
service Foo {
rpc List(google.protobuf.Empty) returns (ListResponse) {}
}
message ListResponse {
repeated Foo results = 1;
}
message Foo {...}
Run Code Online (Sandbox Code Playgroud)
如果将来我们需要向此列表请求添加分页,我们需要引入一个请求包装器:
message ListRequest {
int limit = 1;
int offset = 2;
}
Run Code Online (Sandbox Code Playgroud)
然后更新rpc签名:
rpc List(ListRequest) returns (ListResponse) {}
Run Code Online (Sandbox Code Playgroud)
这是向后不兼容的更改,还是 protobuf 格式可以优雅地处理此问题?
我刚刚升级到ReSharper 8.1.23.546,它为我们的团队设置文件添加了一个新密钥:
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
Run Code Online (Sandbox Code Playgroud)
这是什么,为什么将它添加到团队设置文件中?当它存储在版本控制中并且尚未升级到此版本时,是否会导致其他开发人员出现问题?
我试图RegularExpressionAttribute
通过验证SSN 来继承提高可重用性.
我有以下型号:
public class FooModel
{
[RegularExpression(@"^(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{2}[- ]?(?!0000)\d{4}$", ErrorMessage = "The SSN you entered is invalid. If you do not have this number please leave the field blank")]
public string Ssn { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这将在客户端和服务器上正确验证.我想将这个冗长的正则表达式封装到自己的验证属性中,如下所示:
public class SsnAttribute : RegularExpressionAttribute
{
public SsnAttribute() : base(@"^(?!000)(?!666)(?!9[0-9][0-9])\d{3}[- ]?(?!00)\d{2}[- ]?(?!0000)\d{4}$")
{
ErrorMessage = "SSN is invalid";
}
}
Run Code Online (Sandbox Code Playgroud)
然后我改变了我的FooModel
喜好:
public class FooModel
{
[Ssn(ErrorMessage = "The SSN you entered is invalid. If you do not …
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×2
ajax ×1
asp.net ×1
c# ×1
content-type ×1
grpc ×1
html5 ×1
javascript ×1
jsonresult ×1
reactjs ×1
resharper ×1
validation ×1