我是 VueJs 的新手,我正在处理一个表单,我只想Save在模型发生更改时启用该按钮。
我最初的想法是compute将初始模型与当前模型进行比较的脏函数。
注意:此代码未经测试,此处仅作为示例。
var app = new Vue({
el: '#app',
data: {a:0, b:'', c:{c1:null, c2:0, c3:'test'}},
initialData: null,
mounted():{ initialData = JSON.parse(JSON.stringify(data));},
computed: {
isDirty: function () {
return JSON.stringify(data) === JSON.stringify(initialData)
}
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,或者您可以对上述代码提出任何改进建议吗?
我正在处理一个任务并行问题,我有许多任务可能会或可能不会抛出异常.
我想处理所有正确完成的任务并记录其余的任务.在Task.WaitAll不允许我收集其余结果的情况下支持Task异常.
static readonly Task<string> NormalTask1 = Task.FromResult("Task result 1");
static readonly Task<string> NormalTask2 = Task.FromResult("Task result 2");
static readonly Task<string> ExceptionTk = Task.FromException<string>(new Exception("Bad Task"));
var results = await Task.WaitAll(new []{ NormalTask1,NormalTask2,ExceptionTk});
Run Code Online (Sandbox Code Playgroud)
在Task.Waitall 与抛出的异常ExcceptionTk忽略其它结果.我怎样才能得到忽略异常的结果并同时记录异常?
我可以将任务包装到try{...}catch(){...}内部异常的另一个任务中,但我无法访问它们,我希望我不必添加这个开销.
我想只获取在一列中有一些单词的记录,我尝试过使用WHERE ... IN (...)但Postgres在这个where子句中区分大小写.这就是为什么我尝试使用正则表达式和~*运算符.
以下是一个SQL片段,它返回数据库中的所有列和表,我想限制行只带来正则表达式中的表.
SELECT ordinal_position as COLUMN_ID, TABLE_NAME, COLUMN_NAME
FROM information_schema.columns
WHERE table_schema = 'public' and table_name ~* 'PRODUCTS|BALANCES|BALANCESBARCODEFORMATS|BALANCESEXPORTCATEGORIES|BALANCESEXPORTCATEGORIESSUB'
order by TABLE_NAME, COLUMN_ID
Run Code Online (Sandbox Code Playgroud)
此正则表达式将带来BALANCES的所有列以及包含"BALANCES"关键字的表的列.
我想将结果限制为仅完整名称.
我正在努力使用正则表达式从youtube网址中提取视频ID.
"(?:.+?)?(?:\\/v\\/|watch\\/|\\?v=|\\&v=|youtu\\.be\\/|\\/v=|^youtu\\.be\\/)([a-zA-Z0-9_-]{11})+";
它正在工作,因为它匹配视频ID,但我想在youtube域限制它,如果域名与youtube.com或youtu.be不同,我不希望它与id匹配.不幸的是我无法理解这个正则表达式来应用限制.
我想只在域名时匹配id:
在前面使用http或https(或不使用)
上面提到的正则表达式成功匹配以下示例的youtube id:
"http://youtu.be/AAAAAAAAA01"
"http://www.youtube.com/embed/watch?feature=player_embedded&v=AAAAAAAAA02"
"http://www.youtube.com/embed/watch?v=AAAAAAAAA03"
"http://www.youtube.com/embed/v=AAAAAAAAA04"
"http://www.youtube.com/watch?feature=player_embedded&v=AAAAAAAAA05"
"http://www.youtube.com/watch?v=AAAAAAAAA06"
"http://www.youtube.com/v/AAAAAAAAA07"
"www.youtu.be/AAAAAAAAA08"
"youtu.be/AAAAAAAAA09"
"http://www.youtube.com/watch?v=i-AAAAAAA14&feature=related"
"http://www.youtube.com/attribution_link?u=/watch?v=AAAAAAAAA15&feature=share&a=9QlmP1yvjcllp0h3l0NwuA"
"http://www.youtube.com/attribution_link?a=fF1CWYwxCQ4&u=/watch?v=AAAAAAAAA16&feature=em-uploademail"
"http://www.youtube.com/attribution_link?a=fF1CWYwxCQ4&feature=em-uploademail&u=/watch?v=AAAAAAAAA17"
"http://www.youtube.com/v/A-AAAAAAA18?fs=1&rel=0"
"http://www.youtube.com/watch/AAAAAAAAA11"
Run Code Online (Sandbox Code Playgroud)
现在检查URL的当前代码是:
private const string YoutubeLinkRegex = "(?:.+?)?(?:\\/v\\/|watch\\/|\\?v=|\\&v=|youtu\\.be\\/|\\/v=|^youtu\\.be\\/)([a-zA-Z0-9_-]{11})+";
private static Regex regexExtractId = new Regex(YoutubeLinkRegex, RegexOptions.Compiled);
public string ExtractVideoIdFromUrl(string url)
{
//extract the id
var regRes = regexExtractId.Match(url);
if (regRes.Success)
{
return regRes.Groups[1].Value;
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 我想直接使用Microsoft.LoggerSerilog 的BeginScope功能,该功能。
我知道我可以使用 MicrosoftILogger并将 Serilog 设置为底层记录器,但在应用程序的这一点上太麻烦了。
我想知道BeginScopeSerilog 中是否有等价物。
互联网上的信息并不直接,有人提到 Serilog 支持,但如果直接支持或使用 Microsoft 类,则没有提及。
我有以下接受参数 ID 的路由器
{
path: '/Filters/Edit/:id',
name: 'Manager.FilterEditor',
component: FilterEditor
},
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 从一个过滤器导航到另一个过滤器时router.push,视图保持不变。
router.push({ name: 'Manager.FilterEditor', params: { id: newfilter.id } });
URL 更新为新 ID,但型号保持不变。