小编iul*_*net的帖子

是吗??.除了检查null之外,运算符还做了什么?

您可能知道,DateTime?没有参数化ToString(为了格式化输出),并执行类似的操作

DateTime? dt = DateTime.Now;
string x;
if(dt != null)
    x = dt.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)

会扔

方法'ToString'没有重载需要1个参数

但是,由于C#6.0和Elvis(?.)运算符,上面的代码可以替换为

x = dt?.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)

哪....有效!为什么?

.net c# nullable c#-6.0 null-conditional-operator

29
推荐指数
2
解决办法
2701
查看次数

通过ajax发送FormData对象和一个附加参数

我设法发送一个FormData对象,如下所示:

var formData = new FormData();
formData.append('file', this.files[0]);
$.ajax({
   url: urlUploadProductsFile,
   type: 'POST',
   data: formData,
   cache: false,
   contentType: false,
   processData: false
}, 'json');
Run Code Online (Sandbox Code Playgroud)

现在我想要做的是添加一个额外CustomerId的发送到服务器.以下内容不起作用:

var formData = new FormData();
formData.append('file', this.files[0]);
$.ajax({
   url: urlUploadProductsFile,
   type: 'POST',
   data: { "file": formData, "CustomerId": 2 },
   cache: false,
   contentType: false,
   processData: false
}, 'json');
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下变化:

data: { "file": formData, "CustomerId": 2 }, processData: true

data: JSON.stringify({ "file": formData, "CustomerId": 2 })

data: { "file": JSON.stringify(formData), "CustomerId": 2 }

data: { file: …

ajax jquery json form-data

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

片段 - 标识符已经声明

我在Chrome代码段中写了这个:

let myVar = someValue;
Run Code Online (Sandbox Code Playgroud)

当我第二次尝试运行它时,它表示变量已经被声明并在第一行引发错误.

错误是:

未捕获的SyntaxError:标识符'commitPromotionData'已经声明为:1:1

当然,这将是控制台的默认行为,但这似乎没有多大意义..

这是有意的吗?有没有办法解决?

google-chrome

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

如何在gcloud中从部署中排除文件?

我已经构建了一个Node.js应用程序,我要部署的是cd进入我项目的目录并运行gcloud preview app deploy.这是有效的,但在文件中我还有一个JSON文件,其作用类似于我的应用程序的数据库,我不希望在部署时在网站上更新.我似乎无法找到任何办法.如果不可能,能够远程查看JSON文件并将其数据复制到本地文件,然后部署一切也会对我有所帮助,但我似乎无法做到这一点.

google-cloud-storage google-cloud-platform gcloud

10
推荐指数
3
解决办法
5296
查看次数

Chrome - 禁用javascript而不重新加载?

Chrome以及许多扩展程序使您可以在页面上禁用javascript,但所有这些扩展会强制某种类型的重新加载到页面.

我试图诊断一个糟糕的滚动性能问题.我希望在内容加载和启动时启用JS,然后完全禁用它,以检查问题是基于脚本还是只是导致问题的重页内容.

有没有办法做到这一点?

javascript google-chrome google-chrome-devtools

10
推荐指数
1
解决办法
4358
查看次数

Linq选择返回字符串而不是对象

我有以下代码:

var languages = _languageService
            .GetAll()
            .Select(x => (((LanguageViewModel) new LanguageViewModel().InjectFrom(x))))
            .ToList();
Run Code Online (Sandbox Code Playgroud)

执行此操作languages时,按预期变为LanguageViewModel对象集合:

工作

我想要做的是,在选择时,还将对象的Code属性转换为大写,如下所示:

var languages = _languageService
            .GetAll()
            .Select(x => (((LanguageViewModel) new LanguageViewModel().InjectFrom(x)).Code = x.Code.ToUpper()))
            .ToList();
Run Code Online (Sandbox Code Playgroud)

我期待该languages对象有多个LanguageViewModels但它看起来像这样:

在此输入图像描述

我的猜测是,我正在使用Select(x => (new Object().Property = Value))它选择的语句Property.但是,如何返回一个更改了其属性的对象?在注入之前使用对象初始化器不是一个选项,因为它被覆盖,在Inject之后使用它是不可能的,因为它还没有被铸造,所以我得到了这里似乎不起作用的解决方案.任何建议都非常感谢.

c# linq lambda

9
推荐指数
1
解决办法
3119
查看次数

Document.querySelector 返回 null,直到使用 DevTools 检查元素

我正在尝试创建一个 Chrome 扩展程序,用于查找 Facebook 上的“赞助”帖子并将其删除。

在执行此操作时,我注意到 Google Chrome 在 Facebook.com 上的这种相当奇怪的行为,其中对现有元素(在我的情况下)的某些类型的查询document.querySelector('a[href*="/ads/about"]');将返回null。但是,如果您“检查”-单击它们(使用检查工具或 CTRL+SHIFT+C),它们将显示在 DevTools 中,然后在控制台中再次运行查询将显示该元素。无需对页面进行任何滚动、移动、调整大小或执行任何操作。

使用上面的说明可以轻松复制这一点,但为了清楚起见,我制作了以下视频来准确显示奇怪的行为:

https://streamable.com/mxsf86

这是某种 dom 查询缓存问题吗?你有遇到过类似的事情吗?谢谢

编辑:问题现在已减少为查询返回,null直到元素悬停为止,并且它不再是与 DevTools 相关的问题。

html javascript dom google-chrome

8
推荐指数
1
解决办法
3281
查看次数

clickBubble:false不工作

我已经按照从上的KO文档文章这个例子click绑定在这里:

<div data-bind="click: myDivHandler">
    <button data-bind="click: myButtonHandler, clickBubble: false">
        Click me
    </button>
</div>
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

<tr role="row" data-bind="click: 'True' === 'True' ? ($root.BrowsingCatalog() ? $root.viewProduct : $root.showProduct) : $root.showProduct">
    <td class="col-sm-1" data-bind="visible: 'True' == 'True' ? !$root.BrowsingCatalog() : true">
        <div class="btn-group">
            <button type="button" data-bind="clickBubble: false" class="btn btn-round dropdown-toggle " aria-expanded="false">
                 <span class="fa fa-caret-down"></span> 
            </button>
        </div>
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

当我点击时button,来自tr被调用的事件.我错过了什么?

knockout.js

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

延迟后,.css()将不会被应用

我想使用jQuery改变div上的背景颜色css()并且它有效,但后来我试图给它添加一些延迟,并且由于某种原因它停止了工作.我错过了什么?这是它的MVC:

HTML:

<div id="nodelay"></div>
<div id="delay"></div>
Run Code Online (Sandbox Code Playgroud)

JS:

$("#nodelay").hover(function() {
       $(this).css("background-color", 'gray');
     });

$("#delay").hover(function() {
    setTimeout(function() {
        $(this).css("background-color", 'gray');
    }, 500);
});
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/8eabfa2t/1/

html javascript css jquery

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

获取FlatList当前滚动位置

我有这个代码:

<FlatList
    ref={(x) => (this.flatList = x)}
    data={players}
    style={this.props.style}
/>
Run Code Online (Sandbox Code Playgroud)

我需要的是保存FlatList用户导航离开时的当前滚动位置。

所以类似的东西this.flatList.getCurrentScrollPosition()

有这样的事吗?

react-native

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