小编Men*_*gis的帖子

如何在 VueJs 中实现脏状态

我是 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)

有没有更好的方法来做到这一点,或者您可以对上述代码提出任何改进建议吗?

vuejs2 dirty-checking

13
推荐指数
2
解决办法
1万
查看次数

忽略在Task.WhenAll上抛出异常的任务,只获取完成的结果

我正在处理一个任务并行问题,我有许多任务可能会或可能不会抛出异常.

我想处理所有正确完成的任务并记录其余的任务.在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(){...}内部异常的另一个任务中,但我无法访问它们,我希望我不必添加这个开销.

.net c# exception task task-parallel-library

11
推荐指数
2
解决办法
4126
查看次数

正则表达式在Postgresql上找到完整的单词

我想只获取在一列中有一些单词的记录,我尝试过使用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"关键字的表的列.

我想将结果限制为仅完整名称.

regex postgresql

7
推荐指数
1
解决办法
3252
查看次数

从.net中的youtube网址中提取视频ID

我正在努力使用正则表达式从youtube网址中提取视频ID.

"(?:.+?)?(?:\\/v\\/|watch\\/|\\?v=|\\&v=|youtu\\.be\\/|\\/v=|^youtu\\.be\\/)([a-zA-Z0-9_-]{11})+";

它正在工作,因为它匹配视频ID,但我想在youtube域限制它,如果域名与youtube.com或youtu.be不同,我不希望它与id匹配.不幸的是我无法理解这个正则表达式来应用限制.

我想只在域名时匹配id:

  • www.youtube.com
  • youtube.com
  • youtu.be
  • www.youtu.be

在前面使用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)

.net c# regex

6
推荐指数
2
解决办法
8231
查看次数

使用 Serilog 的 BeginScope

我想直接使用Microsoft.LoggerSerilog 的BeginScope功能,该功能。

我知道我可以使用 MicrosoftILogger并将 Serilog 设置为底层记录器,但在应用程序的这一点上太麻烦了。

我想知道BeginScopeSerilog 中是否有等价物。

互联网上的信息并不直接,有人提到 Serilog 支持,但如果直接支持或使用 Microsoft 类,则没有提及。

c# logging serilog

6
推荐指数
2
解决办法
6748
查看次数

在Chart JS的tooltip中添加所有数据

我创建了一个具有两个数据集的 Chart JS 2 图。

当我将鼠标悬停在一行上时,我只会得到当前行的数据,但我也想查看另一行的数据。

在此处输入图片说明

如何在工具提示中添加特定日期的所有数据?

tooltip chart.js

5
推荐指数
1
解决办法
2113
查看次数

当我更改路由器 paramId 时,VueJS 视图不刷新

我有以下接受参数 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,但型号保持不变。

vue.js vue-router

2
推荐指数
1
解决办法
2084
查看次数