小编Saw*_*oes的帖子

Angular.js说自定义HTTP响应头是null

POST的回调函数为我的自定义HTTP标头返回null X-Auth-Token.Chrome正在显示正确的POST响应标头,但Angular.js不是.

Angular唯一返回的是Cache-Control和Content-Type.其他一切都显示为null.

这是我的CoffeeScript显示我是如何调用它的:

.factory 'loginFactory', ($rootScope, $http, $resource) ->
    $resource '/api/auth/login',
        email: '@id'
        password: '@id'

.controller 'userController', ($scope, $state, $http, loginFactory, userService) ->
    $scope.validationError = false
    $scope.user =
        email: ''
        password: ''

    $scope.loginUser = ->
        loginFactory.save $scope.user, (u, headers) ->
            console.log headers('X-Auth-Token')
        .$promise.then (response) ->
            unless response.error
                userService.login($scope.user.email, $scope.user.password)

                unless userService.redirIfLoggedIn()
                    $scope.validationError = true
Run Code Online (Sandbox Code Playgroud)

我也试过运行早期版本的Angular 1.3.x,那些也有同样的问题.

为什么Angular只在我提出请求时返回这两个标题?

javascript angularjs

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

我什么时候应该在 Material-UI 中使用 Lists vs Menus?

我无法弄清楚 Material-UI 中列表和菜单之间的区别。

文档

列表 - https://material-ui-next.com/demos/lists/

菜单 - https://material-ui-next.com/demos/menus/

描述

我的想法是菜单用于路由和导航,而列表用于配置或静态内容,但后来我看到了这些引号:

菜单在与按钮、动作或其他控件交互时出现。它们显示一个选项列表,每行一个选项。

读到这里,菜单并不打算总是显示,它们被设计成隐藏起来,只是暂时显示。

菜单不应用作应用程序内导航的主要方法。

这使得带有导航元素列表的侧边栏看起来应该是一个列表。如果是这样,如果我使用相同的组件并想在下拉菜单中使用它怎么办?我是否必须使用 Menu 组件制作单独的组件?

由于我不清楚文档,我想在哪些情况下使用菜单与列表?

reactjs material-ui

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

为什么管道化BehaviorSubject在RxJS中创建AnonymousSubject?

创建RxJS时BehaviorSubject,它会一直停留BehaviorSubjectpipe。一旦一个pipe返回“d版本,它成为一个AnonymousSubject

例子:

// Instance of `BehaviorSubject`
const behaviorSubject$ = new BehaviorSubject({ someValue: null })

// Suddenly becomes an Anonymous Subject
const anonymousSubject$ = (
    behaviorSubject$
    .pipe(
        pluck('someValue')
    )
)

// Also suddenly becomes an Anonymous Subject
const anonymousSubject$ = (
    new BehaviorSubject({ someValue: null })
    .pipe(
        pluck('someValue')
    )
)
Run Code Online (Sandbox Code Playgroud)

我也遇到同样的问题ReplaySubject。我似乎无法遍历该主题并将其返回。它始终会转换为AnonymousSubject。我认为我在这里寻找的是类似Promise的行为,我可以从任何地方订阅此可观察值,并获取传递给它的一个值。

javascript rxjs subject-observer behaviorsubject rxjs5

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

RxJS和IxJS之间的区别?

RxJS和IxJS有什么区别,什么时候我要在另一个上使用?

从IxJS文档中:

RxJS非常适合基于事件的工作流,在这些工作流中,数据可以按生产者的速度推送,但是IxJS非常适合I / O操作,在此情况下,作为消费者的用户可以在准备就绪时提取数据。

通过文档会后,唯一的主要区别似乎是概念Iterables在IxJS观测量的RxJS

Iterable和Observable都可以同步或异步执行,并且当与几乎相同的创建者函数配对时.forEach,from IxJS的.subscribe方法与RxJS的方法基本相同from。唯一的不同是IxJS的.forEach方法是可选的,因为您可以改用命令式for-of

似乎有两个库无缘无故,因为RxJS的fromcreator函数可以将Iterables转换为Observables。

在我看来,它不是真正的IxJS和RxJS,而是Iterables和Observables。它们有何不同?何时使用它们?

rxjs ixjs

7
推荐指数
2
解决办法
522
查看次数

PHP中的上标字符导致MySQLi选择查询找到0行

我使用的是PHP 5.3.3和MySQL 5.1.61.有问题的列使用UTF-8编码,PHP文件以UTF-8编码,没有BOM.

在Windows上使用SQLyog中的²字符进行MySQLi查询时,查询会正确执行并显示正确的搜索结果.

如果我在PHP中执行相同的完全查询,它将执行但会显示0 affected_rows.

这是我试过的:

  • 同时使用LIKE而不是=
  • 将PHP文件的编码更改为ANSI,不带BOM的UTF-8和UTF-8
  • 在运行查询之前执行'SET NAMES utf-8'和'latin1'
  • 是标题('Content-Type:text/html; charset = UTF-8'); 用PHP
  • 使用MySQLi :: real_escape_string转义
  • 做一个filter_var($ String,FILTER_SANITIZE_STRING)
  • 尝试了一个MySQLi stmt绑定

我可以让它正常工作的唯一方法是,如果我在PHP中将²换成%并更改= LIKE.

使用²时,如何在PHP中正确查询?

php mysql mysqli superscript character-encoding

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

在带有 ES 模块的 Node.js 中使用相对路径导入

过去,app-module-path每当我想在 Node.js 应用程序中使用相对路径时,我都会使用它。如果我通过该格式使用 ES 模块.mjs,如何在某个目录路径变为相对路径的情况下具有相同的功能?

以另一种方式,我是否能够为目录分配一个别名,以便所有相对路径都相对于该别名,就像./路径的别名相对于当前目录一样。

node.js es6-modules mjs

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

RxJS v5+ 中的 `Observable.transduce` 发生了什么?

RxJS v4 曾经有一种Observable.transduce方法可以使用转换器。这允许使用在过去具有重大性能优势的独立于库的传感器运算符。

来源

RxJS v5.5 和 v6 具有可管道操作符和 v6 删除了方法链。因此,我假设 RxJS 操作符是标准的转换器。查看源代码,情况似乎并非如此。

RxJS v6 操作符的功能就像一个转换器,其中每个值在下一个值通过之前完全通过链传递,但 RxJS v6 操作符没有使用我在其他库中看到的标准转换器方法,这意味着,我不认为它们是便携式的。

关于传感器的整个事情是他们对集合本身一无所知。您可以编写 100 个普遍适用于任何集合或流类型的运算符,而不是专门为 observable 编写 100 个运算符。

在 RxJS v5 中是否.pipe一致.transduce或完全删除了这种方法?

method-chaining pipelining transducer rxjs

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

仅在更改软件包时才在VSTS中构建Monorepo

在VSTS中使用monorepo时,有时我只会在一次提交中更新一个软件包,而不是全部。在那种情况下,我只想为那个特定的片段运行构建,别无其他。

我使用的是持续集成,因此它将在任何时候提交的内容中master进行构建。可悲的是,此构建过程可能需要一段时间,并且如果只修改了代码的一部分,我只想构建该项目。

由于我正在更新Git提交,因此我可能正在寻找是否对特定目录中的文件进行了更改,但是我相信有更好的方法。

注意:我的项目使用Node.js和Webpack,并使用Docker Compose进行构建。

git azure-devops azure-pipelines-build-task azure-pipelines monorepo

4
推荐指数
1
解决办法
1095
查看次数

Azure DevOps 为内联 bash 脚本中的操作创建变量

在 Azure DevOps 中创建这样的内联 bash 命令时:

checksum="$(cksum file.txt)"
Run Code Online (Sandbox Code Playgroud)

我最终会看到它cksum file.txt是一个必需的参数。无论出于何种原因,这种行为并不一致,因此有时我已经设置了可以与内联 Bash 脚本一起正常工作的构建管道,但不可避免地,我会遇到这个问题并且无法修复它。

我什至尝试将cksum file.txt参数设置为cksum file.txt,但用编码字符串替换空格:%20。它变成cksum%20file.txtwhich 在 bash 中不是有效命令。

这是完整的脚本:

yarnCacheFilename="$(cksum yarn.lock).yarnCache.docker.tgz"

wget "https://example.azureedge.net/yarn-cache/$yarnCacheFilename"

if [ -f "$yarnCacheFilename" ]; then
    mkdir node_modules
    tar -xzvf "$yarnCacheFilename"
else
    yarn install --production
fi
Run Code Online (Sandbox Code Playgroud)

足够简单。这是我可以在任何bash终端中运行的代码。遗憾的是,Azure DevOps 正在向任务组添加一个参数:

Azure DevOps 为内联 <code>bash</code> 命令添加参数

该参数存在的事实意味着 Azure DevOps 阻止了我的 bash 文件正确执行并替换了最关键的部分。

我如何解决这个问题?

azure-devops azure-pipelines-build-task azure-pipelines azure-task-groups

4
推荐指数
1
解决办法
5180
查看次数

JavaScript中的生成器和闭包有什么区别?

对同一问题使用这两种解决方案有什么区别?

封闭方式

const numberIncrementer = startValue => () => startValue++
const getNextNumber = numberIncrementer(0)

console.log(getNextNumber())
// 0

console.log(getNextNumber())
// 1

console.log(getNextNumber())
// 2
Run Code Online (Sandbox Code Playgroud)

生成器方法

const numberIncrementer = function*(startValue) {
    while(true) {
        yield startValue++
    }
}

const numberFactory = numberIncrementer(0)
const getNextNumber = () => numberFactory.next().value

console.log(getNextNumber())
// 0

console.log(getNextNumber())
// 1

console.log(getNextNumber())
// 2
Run Code Online (Sandbox Code Playgroud)

查看这两种方法,我为什么要选择一种方法呢?

javascript closures generator ecmascript-6

3
推荐指数
1
解决办法
635
查看次数

在Azure DevOps中完成发布后,如何创建请求请求?

我正在从事的项目有2个长期存在的功能分支以及master分支。

为了完全自动化部署,每当部署从Azure DevOps版本中退出时,我想创建一个从master到这两个功能分支的提取请求。

Azure DevOps中的哪种工具将允许我将发布请求创建为发布任务?

git pull-request azure-devops azure-pipelines azure-pipelines-release-pipeline

3
推荐指数
1
解决办法
694
查看次数

Safari App Extension 不会第二次加载

我遇到了一个奇怪的问题,我第二次运行 Safari 应用程序扩展时,它不会显示在 Safari 中。

  1. 打开 Xcode。
  2. 新建 > 项目。
  3. 在“其他”下,选择“Safari 扩展应用程序”,然后单击“下一步”。
  4. 在此“产品名称”屏幕上输入您想要的任何内容,然后单击“下一步”。
  5. 单击“创建”。
  6. 单击 Xcode 左上角的 Play 图标运行项目。
  7. 它将打开一个小应用程序,底部有一个按钮,文本为:“在 Safari 扩展首选项中打开”。
  8. 应该不会出现 如果是,请跳至 10。
  9. 转到 Safari 标题菜单中的开发,单击“允许未签名的扩展”。
  10. 出现后,选中该框以启用它。
  11. 单击左上角的停止图标,停止运行 Xcode。
  12. 更改插件的 Info.plist 中的值,例如将SFSafariWebsiteAccess.Level“Some”更改为“All”。
  13. 单击 Xcode 中的播放图标。
  14. Safari 会告诉您扩展权限已更改。确认这些更改,扩展将不再显示。

如果我更改其他值,也会发生同样的事情。如果我保持扩展代码和设置完全不变,则不会出现任何问题。但是一旦我更改了某个值,即使我将这些设置更改回来,它也会完全中断。

这对我来说发生在两台不同的 Mac 上,分别是 10.13 和 10.14 以及最新的 Xcode。

safari xcode safari-app-extension

3
推荐指数
1
解决办法
408
查看次数

检查左键或右键单击的指针事件方法

我已经通过pointerevents-polyfill配置了指针事件 。

我有一个问题,我无法区分左键单击和右键单击,其中右键单击导航项目将执行与左键单击相同的操作,而不是打开右键单击菜单。

我正在使用的特定事件是pointerup。

指针事件有没有办法检查事件是左键单击还是右键单击?

html javascript mobile jquery pointer-events

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