小编Mul*_*tut的帖子

Angular 4 Http Interceptor:next.handle(...).do不是一个函数

我创建了这个HTTPInterceptor以便能够更好地处理http错误,它在我执行git pull并运行npm install之前运行良好.

这是我的代码:

import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';
import {Observable} from "rxjs";
import {ToasterService} from "angular2-toaster";

@Injectable()
export class GobaeInterceptor implements HttpInterceptor {
    constructor(private toasterService: ToasterService){
    }
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(req)
            .do(event => {
                if (event instanceof HttpResponse) {
                    let response = event.body;
                    if(response.Error){
                        this.toasterService.pop('error', 'Error '+response.Code, response.Message);
                    }
                }
            });
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

TypeError:next.handle(...).do不是GobaeInterceptor.webpackJsonp中的函数.../../../../../src/app/services/gobae.interceptor.ts.GobaeInterceptor.拦截(gobae.interceptor.ts:12)在HttpInterceptorHandler.webpackJsonp .../../../common/@angular/common/http.es5.js.HttpInterceptorHandler.handle(

最近有什么可以影响我的代码的东西改变了吗?我现在可以做什么来"捕获"拦截器上的http响应?

angular-http-interceptors angular

28
推荐指数
3
解决办法
2万
查看次数

在 Angular 中链接可观察订阅的最佳方式?

当我需要在获取另一个资源的结果后调用资源时,我总是嵌套订阅,如下所示:

this.paymentService.getPayment(this.currentUser.uid, this.code)
    .valueChanges()
    .subscribe(payment => {
        this.payment = payment;
        this.gymService.getGym(this.payment.gym)
            .valueChanges()
            .subscribe(gym => {
                this.gym = gym;
            });
    });
Run Code Online (Sandbox Code Playgroud)

我正在使用 Angular v6 和 AngularFire2。

两个端点(getPayment 和 getGym)都返回对象。有没有更优雅的方法来做到这一点而不将一个调用嵌套在另一个调用中?

javascript observable rxjs typescript angular

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

在EPPlus上设置行高时的奇怪行为

我正在使用EEPlus在MVC-5 C#应用程序下构建一个Excel文件.一切都按计划进行,直到我在一行上设置一个高度(因此图像可以适合).

我加载de图像并在第20列设置高度,如下所示:

Image cfPhoto = null;
Bitmap cfBm = null;
ExcelPicture pictureCf = null;
var photoInitialColumn = 0;
i++;
completedFormPhotos.ForEach(delegate(CompletedFormPhoto cfP)
{
    cfPhoto = Image.FromFile(HostingEnvironment.MapPath("~/Content/Images/FormPhotos/" + cfP.Id + ".jpg"));
    cfBm = new Bitmap(cfPhoto, new Size(215, 170));
    pictureCf = worksheet.Drawings.AddPicture(cfP.Id.ToString(), cfBm);
    pictureCf.SetPosition(i+1, 0, photoInitialColumn, 10);
    worksheet.Cells[_alpha[photoInitialColumn] + (i + 3) + ':' + _alpha[photoInitialColumn + 1] + (i + 3)].Merge = true;
    worksheet.Cells[_alpha[photoInitialColumn] + (i + 3) + ':' + _alpha[photoInitialColumn + 1] + (i + 3)].Value = cfP.comment;
    worksheet.Cells[_alpha[photoInitialColumn] …
Run Code Online (Sandbox Code Playgroud)

c# excel epplus asp.net-mvc-5

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

使用Java中的retainAll获取多个列表的交集

我很难找到Java上几个列表的交集.我正在做的是:我得到(让我们说)3个整数列表:

清单1:[2,2,2,2,5,5]

清单2:[2,2,103]

清单3:[2,431]

我正在使用每个剩余列表将retainAll应用于第一个:

list1.retainAll(list2);
list1.retainAll(list3);
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果:

list1:[2,2,2,2]

但我希望得到这个:

list1:[2]

...因为所有列表共享的唯一元素是一个 2而不是四个 2.

我知道这可能是retainAll函数的预期行为,但我需要得到上面提到的结果.

有帮助吗?

编辑: 使用HashSet禁止重复也不会有效.在这种情况下,例如:

清单1:[2,2,2,2,5,5]

清单2:[2,2,103]

清单3:[2,2,2,431]

我需要得到一个结果:

清单1:[2,2](因为所有列表至少有一对2)

代替

清单1:[2]

java arraylist

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

创建一个像stackoverflow一样的标签框

我真的很想知道如何安排一个标签盒,就像我们这里的Stackoverflow一样.

我几乎就在那里,我只需要安排标签,当标签容器宽度被超越时,标签被推到左边而不是向右或向下.

到目前为止,我有这个CSS代码:

#tagsContainer{
    border: 1px solid black;
    width: 400px;
    height: 28px;
    overflow-x: scroll;
}
#tagsBox{
    float: left;
}
#tagsTxtBox{
    float: right;
}
Run Code Online (Sandbox Code Playgroud)

这个HTML代码:

<div id="tagsContainer">
    <div id="tagsBox"></div>
    <div id="tagTxtBox"><input type="text" id="autocompletes" /></div>
</div>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

html css tags

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

全局从裸Git存储库中删除文件

我想删除有人推送到我们的git存储库中的几个大文件,以便其他所有人都可以从存储库中提取而不下载它们。

我已经试过忽略那些文件,并且也从没有运气的主机上删除/提交/推送它们。

我可以访问服务器和裸仓库

谢谢!

git

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

在AngularJS和Ionic上呈现列表之前等待异步数据

我是Angular JS的新手,但在使用Javascript方面有很好的经验.

在我的应用程序中,我正在创建一个由来自Web服务的JSON数据实现的简单工厂:

.factory('Tools', function($http) { 
    var tools = {content:null};
    var promise = $http.get('/Tool/GetTools').success(function(data) {
        tools.content = data;
        //At this points all the data is on tools.content
    });    
    return {
        promise:promise,
        all: function(){
            return tools;
            //At this point tools equals to null
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

但是当我想渲染列表时:

<ion-list>
      <ion-item ng-repeat="tool in tools">
        Hello, {{tool}}!
      </ion-item>
    </ion-list>
Run Code Online (Sandbox Code Playgroud)

信息还没有.

我的控制器上有这个:

.controller('AccountCtrl', function($scope, Tools) {
  $scope.tools = Tools.all();
});
Run Code Online (Sandbox Code Playgroud)

有没有办法在列表呈现之前从ajax调用加载Tools对象时告诉列表"等待"?

谢谢!

angularjs ionic

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

使用控制器将参数从视图发送到Sencha Touch 2中的其他参数

我只是从Sencha Touch 1.x迁移到Sencha Touch 2,我找不到在视图之间传递参数的方法.

让我说我必须观看:放置(包含所有地方的列表)PeopleAtPlace(每个地方的人员列表)

现在我需要做的是将按下的地方的id传递给peopleatplace视图,以便它可以让人们获得该特定视图.

我一直在阅读Sencha的文档,但这对我来说很困惑.

有人可以帮帮我吗?代码片段对我很有帮助.

model-view-controller sencha-touch-2

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

Bootstrap"移动"菜单未在移动设备上显示

所以我在我的网站上使用我的引导菜单得到了这种奇怪的行为.当我在移动设备(iPhone 4S,iPhone 6 plus,Galaxy S4)或Chrome模拟器中打开我的应用程序时,它会显示菜单的完整版本: 在实际的iPhone 6设备上 iPhone 4在Chrome上模拟

但是,当我在桌面浏览器上调整窗口大小时,它会开始工作,即使此处的宽度大于设备中的宽度: 桌面上的屏幕较小

这是我的代码(我使用的是Bootstrap v3.2.0):

<nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <div class="">
          <ul class="nav navbar-nav">
            <li><a href="<?php echo base_url('index.php/welcome/home');?>"><img src="<?php echo base_url('assets/img/logo.png');?>" id="mainLogo" /></a></li>
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Red Bticino<b …
Run Code Online (Sandbox Code Playgroud)

css responsive-design twitter-bootstrap

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

在类型为ajax的Extjs 5商店本地分页

我正在开发一个应用程序,从一开始就加载所有数据并不是很不方便.

我通过Ajax从服务器获取json数据,而我的商店非常简单:

Ext.define('MODIFE.store.CentroBeneficio', {
    extend  : 'Ext.data.Store',
    requires : [
        'MODIFE.model.CentroBeneficio'
    ],
    storeId : 'CentroBeneficio',
    model   : 'MODIFE.model.CentroBeneficio',
    page-size: 10,
    proxy   :{
        //type: 'memory',
        type: 'ajax',
        enablePaging: true,
        url: 'http://'+MODIFE.Global.ip+'/CentroBeneficio/GetCentroBeneficios'
    },
    autoLoad: true
});
Run Code Online (Sandbox Code Playgroud)

这是我的模特:

Ext.define('MODIFE.model.CentroBeneficio', {
    extend: 'Ext.data.Model',
    storeId: 'CentroBeneficio',
    pageSize: 10,
    fields: [
        {name:'IdCentroBeneficio', type:'int'},
        {name:'CompaniaCodigo', type:'int'},
        {name:'codigo', type:'string'},
        {name:'description', type:'string'},
        {name:'complete_description', type:'string', convert : function(v, record) {return record.data.codigo+' - '+record.data.description;}},
        {name:'status', type:'int', convert : function(v, record) {return (record.data.status == 1) ? 'Activo' : 'Inactivo';}},
        {name:'name_compania', type:'string'},
        {name:'pais', …
Run Code Online (Sandbox Code Playgroud)

paging extjs store extjs5

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