小编Sla*_* II的帖子

如何使用RxJS observable去抖动Angular 4中的异步验证器?

我正在使用自定义异步验证器和Angular 4被动表单来检查是否已经通过调用后端来获取电子邮件地址.

但是,Angular调用验证器,验证器向服务器请求每个输入的字符.这会在服务器上造成不必要的压力.

是否可以使用RxJS observable优雅地去抖异步调用?

import {Observable} from 'rxjs/Observable';

import {AbstractControl, ValidationErrors} from '@angular/forms';
import {Injectable} from '@angular/core';

import {UsersRepository} from '../repositories/users.repository';


@Injectable()
export class DuplicateEmailValidator {

  constructor (private usersRepository: UsersRepository) {
  }

  validate (control: AbstractControl): Observable<ValidationErrors> {
    const email = control.value;
    return this.usersRepository
      .emailExists(email)
      .map(result => (result ? { duplicateEmail: true } : null))
    ;
  }

}
Run Code Online (Sandbox Code Playgroud)

validation asynchronous rxjs angular

15
推荐指数
3
解决办法
9033
查看次数

RxJS observable,从第一次发射开始发出先前值和当前值

我有一个BehaviorSubject定期发出JavaScript对象.我想构造另一个observable,它将发出底层observable的先前值和当前值,以便比较两个对象并确定delta.

pairwise()bufferCount(2, 1)运营商正在寻找像一个不错的选择,但他们开始发光缓冲区填满后,才,但我需要这个观察到,开始从底层观察到的第一个事件发射.

subject.someBufferingOperator()
    .subscribe([previousValue, currentValue] => {
        /** Do something */
    })
;
Run Code Online (Sandbox Code Playgroud)

在第一次发射时,previousValue可能只是null.

是否有一些内置的操作符可用于实现所需的结果?

observable rxjs

15
推荐指数
2
解决办法
5392
查看次数

使用insert()方法使用PHP Doctrine\DBAL 2插入DateTime值

如何使用Doctrine\DBAL将PHP的DateTime对象作为数据库字段的值传递?

$ DBDoctrine\DBAL\Connection实例.

$DB->insert('table_name', [
    'field' => new \DateTime(),
]);

// Catchable fatal error: Object of class DateTime could not be converted to string
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,文档很少.

我确信您可以使用其他DBAL方法直接提供DateTime对象,是否可以使用insert()执行此操作?

php database datetime doctrine-orm dbal

14
推荐指数
1
解决办法
6069
查看次数

仅在AngularJS中完成初始化后运行控制器

我在AngularJS应用程序中执行任何控制器之前需要加载一些全局数据(即在AngularJS中全局解析依赖关系).

例如,我有一个UserServicegetCurrentUser()它不以获取有关当前验证的用户数据到后端服务器的请求方法.我有一个控制器需要这些数据才能启动另一个请求(例如加载用户的余额).

我怎样才能做到这一点?

javascript initialization angularjs

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

如何在Bootstrap 3中使用FontAwesome替换Glyphicons而不更改HTML?

我在我的项目中使用Bootstrap 3,我使用FontAwesome图标库而不是捆绑的Glyphicons.

问题是我有一些依赖Glyphicons的第三方组件,我不想改变他们的HTML.

我通过BowerSASS + Compass(SCSS)包括字体真棒.

是否可以在不更改HTML和应用其他CSS类的情况下用FontAwesome替换Glyphicons?

sass twitter-bootstrap font-awesome glyphicons compass

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

在bootstrap-ui datepicker中允许Moment.js日期

我正在尝试使用Bootstrap UI的 DatePickerMoment.js日期.

如果我将模型值从Moment.js日期转换为标准,Date然后再将其分配给范围:

$scope.myDate = moment('2014-11-07T21:20:15').toDate();
Run Code Online (Sandbox Code Playgroud)

但是,我希望它尽可能透明,即无需手动预先转换.

我试图通过指令扩展添加包装格式化程序和解析器,但它不能正常工作,因为我期望:

angular
    .module('DatepickerWorkaround', [])
    .directive('datepickerPopup', function () {
        return {
            restrict: 'EAC',
            require: 'ngModel',
            priority: -10,
            link: function ($scope, element, attrs, ngModel) {

                // Remove the default formatter from the input directive to prevent conflict.
                // This is required for compatibility with AngularJS 1.3.x.
                ngModel.$formatters.shift();

                // Casting Moment.js date to standard date.
                ngModel.$formatters.unshift(function(momentDate) {
                    if (moment.isMoment(momentDate)) {
                        return momentDate.toDate();
                    }
                });

                // Casting standard date back …
Run Code Online (Sandbox Code Playgroud)

javascript datepicker angularjs angular-ui-bootstrap

12
推荐指数
2
解决办法
9936
查看次数

12
推荐指数
3
解决办法
8547
查看次数

如何使用Ansible在Ubuntu框上安装Ruby 2和Ruby Gems

我想使用AnsibleUbuntu Server机器配置最新的RubyRuby Gems版本.

我该怎么做呢?

ruby ubuntu ansible

11
推荐指数
1
解决办法
5734
查看次数

禁用Sails.js中的一些内置功能

我正在使用Sails.js 0.10作为框架开发REST API后端应用程序.此应用程序将严格REST,将使用oAuth承载令牌实现身份验证.所有回复都将采用JSON格式.

考虑到这个特定的要求,我不需要在Sails.js中嵌入一些功能,我想从我的应用程序中删除它(因此它可以在没有多余代码的情况下运行得更快).

所以,我的问题是:如何禁用以下内置功能?

  • 蓝图
  • 静态的
  • 饼干
  • 会议
  • 查看
  • 的WebSocket
  • CSRF
  • 国际化

我的用例中不需要禁用哪些其他内容?

在这个具体问题上,文档有点分散.为每个模块描述了所有配置选项,但没有关于如何从应用程序禁用和/或删除此类模块的信息.

javascript node.js sails.js

11
推荐指数
1
解决办法
2015
查看次数

如何在Sails.js应用程序中禁用或替换X-Powered-By标头

当我运行Sails.js应用程序时,它会自动为每个响应添加以下HTTP标头:X-Powered-By: "Sails <sailsjs.org>".

是否可以禁用或覆盖它?

javascript http-headers express sails.js

9
推荐指数
2
解决办法
2178
查看次数