小编Tho*_*der的帖子

ASP.NET Core忽略ASPNET_ENV和Hosting:Environment

无论我何时何地设置,ASPNET_ENV或者Hosting:Environment启动代码将始终进入

//This method is invoked when ASPNET_ENV is 'Production'
//The allowed values are Development,Staging and Production
public void ConfigureProduction(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
   loggerFactory.AddConsole(minLevel: LogLevel.Warning);

   Configure(app);
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

到目前为止我尝试过的

  • 设置Hosting:EnvironmentDevelopment项目属性
  • 设置ASPNET_ENVDevelopment项目属性
  • 设置Hosting:EnvironmentDevelopmentlaunchSettings.json
  • 设置ASPNET_ENVDevelopmentlaunchSettings.json
  • 设置ASPNET_ENVDevelopment通过在代码Environment.SetEnvironmentVariable("ASPNET_ENV", "Development");中的Startup方法调用之前ConfigurationBuilder.GetEnvironmentVariables()

这是版本1.0.0-rc2-20143的方式.我在这里遗漏了什么,还是只是一个错误?

asp.net-core-mvc asp.net-core asp.net-core-1.0

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

gulp 在 dist 中创建 src 目录结构

我得到了以下gulp任务,

const gulp = require('gulp');
const del = require('del');
const typescript = require('gulp-typescript');
const tscConfig = require('./tsconfig.json');
const sourcemaps = require('gulp-sourcemaps');
const print = require('gulp-print');

// clean the contents of the distribution directory
gulp.task('clean', function () {
  return del('dist/**/*');
});

// TypeScript compile
gulp.task('compile', ['clean'], function () {
  return gulp
    .src(tscConfig.files)
    .pipe(print(function (filepath) {
      return 'Processing ' + filepath + '...';
    }))
    .pipe(sourcemaps.init())
    .pipe(typescript(tscConfig.compilerOptions))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('dist/app'));
});

gulp.task('build', ['compile']);
gulp.task('default', ['build']);
Run Code Online (Sandbox Code Playgroud)

和目录结构

|
+- dist
|
+- src …
Run Code Online (Sandbox Code Playgroud)

gulp tsconfig

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

使用样式加载器加载一些CSS,并在Webpack 2中加载一些带有to-string-loader的CSS

我正在开发一个Angular 2应用程序,目前正在尝试用Webpack 2构建它(这是我第一次涉足Webpack).

我明白之间的差style-loaderto-string-loader,前者增加了CSS到DOM,后者产生一个字符串数组角为2至经由消耗styles特性.

我的问题是,我可以同时拥有两个吗?换句话说,如果我在文件中有全局样式site.css,那么在不改变组件样式(to-string-loader,css-loader)的行为的情况下,将这些样式与Webpack捆绑在一起的正确方法是什么?

只是要求或导入它们main.ts似乎不足以让Webpack弄清楚要做什么.

css webpack-style-loader webpack-2 angular

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

HttpClient 可以有多个 HTTP 消息处理程序吗?

我需要查询发送响应的 Web API,该响应可以加密和/或压缩和/或 Base64 编码,我想将其实现为HttpMessageHandler非常像这篇文章中概述的s链,这是针对 Web API 的尽管。

有一个用于HttpClient获取 的构造函数HttpMessageHandler,所以这是一个开始。我是否必须自己提出链接多个处理程序的解决方案,还是有更好的选择?

asp.net asp.net-mvc dotnet-httpclient

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

Redux 状态和 Angular 2 路由

我正在尝试在我的 Angular 2 应用程序中掌握 Redux 状态管理,并且想知道 Redux 状态和 Angular 2 路由如何可以很好地协同工作。

例如,我有采用日期或日期范围的各种视图(即具有单独路由的组件)。所以在我的应用栏中,我有一个按钮,可以显示一个日历,供用户选择日期。然后视图获取这个日期作为查询参数,

http://localhost:3000/view&date=20160928
Run Code Online (Sandbox Code Playgroud)

然后我可以通过监听激活的路由查询参数来检索组件内的日期

this.route.queryParams.subscribe(params => <load records for date>);
Run Code Online (Sandbox Code Playgroud)

现在我将如何使用 Redux 做到这一点,也就是说,我应该如何仅将状态保留在 Redux 存储中?起初我以为我只需要获取日期参数并将其发送DATE_ACTION_CHANGE到商店,然后依次监听状态变化

date$ = this.ngRedux.select(state => state.date)
   .subscribe(date => <load records for date>);
Run Code Online (Sandbox Code Playgroud)

这是推荐的方法吗?只要我只有一个可观察对象,它就可以正常工作。但是,我从各种来源获取参数。例如,另一个参数是客户的 ID。那又是 URL 的一部分,

localhost:3000//client/45&date=20160928
Run Code Online (Sandbox Code Playgroud)

那是当它变得朦胧时,我应该用 ID 和日期更新商店,然后监听状态中的两个属性发生变化吗?如果一个改变了,而另一个没有怎么办?我有一种感觉我做错了,有什么指示吗?

redux angular

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

如何在ASP.NET Core项目中为MVC和SignalR配置路由?

我正在尝试使用ASP.NET Core 2.1.0-preview1和带有Angular4客户端的ASP.NET Core SignalR 1.0.0-alpha1构建一个Web应用程序.到目前为止,我已经能够搞砸了,实际上可以在客户端内打开SignalR Web套接字连接.然而,这是有代价的,这是我的摘录Startup.cs:

app.UseMvc(routes =>
{
   routes.MapRoute(
      name: "default",
      template: "{controller=Home}/{action=Index}/{id?}");

   /*routes.MapSpaFallbackRoute(
      name: "spa-fallback",
      defaults: new { controller = "Home", action = "Index" });*/
});

app.UseWebSockets();
app.UseSignalR(routes =>
{
   routes.MapHub<Feed>("feed");
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我不得不禁用"spa-fallback"路由,如果我不这样做,SignalR将接收纯HTML而不是JSON.当然,缺点是我必须立即输入确切的URL(localhost:12345/home/index例如),这很糟糕.

所以我的问题是,如何让MVC路由和SignalR路由并排?

asp.net-routing signalr asp.net-core-mvc asp.net-core

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

共享数据并添加到ObservableCollection时出现InvalidCastException

我正在尝试使用共享合同将数据从Edge发送到我的UWP应用程序.它就像一个魅力,除非我尝试将以这种方式接收的数据添加到一个ObservableCollection<T>我得到此异常:

InvalidCastException:无法将类型为"System.Collections.Specialized.NotifyCollectionChangedEventHandler"的COM对象强制转换为类类型"System.Collections.Specialized.NotifyCollectionChangedEventHandler".表示COM组件的类型实例不能转换为不代表COM组件的类型; 但是只要底层的COM组件支持对接口的IID的QueryInterface调用,它们就可以转换为接口.*

代码如下:

App.xaml.cs:

protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
  {
     if (this.SharingService != null)
        await this.SharingService.OnShareTargetActivated(args);
  }
Run Code Online (Sandbox Code Playgroud)

SharingService.cs:

public delegate void UriAddedEventHandler(object sender, UriAddedEventArgs args);
public event UriAddedEventHandler UriAdded;

public async Task OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
   var shareOperation = args.ShareOperation;

   if (shareOperation.Data.Contains(StandardDataFormats.WebLink))
   {
      var uri = await shareOperation.Data.GetWebLinkAsync();

      this.UriAdded?
         .Invoke(this, new UriAddedEventArgs { Uri = uri });
   }
}
Run Code Online (Sandbox Code Playgroud)

ViewModel.cs:

public ViewModel(ISharingService sharingService)
{
   sharingService.UriAdded += OnUriAdded;
}

public ObservableCollection<Uri> collection = new ObservableCollection<Uri>();

private async void OnUriAdded(object …
Run Code Online (Sandbox Code Playgroud)

c# windows-10 uwp

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

$ q.all为所有值返回undefined

我试图等待3个承诺,但$q.all似乎立即解决它们并返回undefined每个单值,我无法弄清楚原因:

this.doWork = function() {
  var deferred = $q.defer();
  var a = get('a'),
    b = get('b'),
    c = get('c');
  $q.all([a.promise, b.promise, c.promise])
    .then(function(values) {
      deferred.resolve(new Test(values[0], values[1], values[2]));
    }, function(reason) {
      deferred.reject(reason);
    });
  return deferred.promise;
};

function get(param) {
  var deferred = $q.defer();
  $timeout(function() {
    if (true) {
      deferred.resolve({
        value: param
      });
    } else {
      deferred.reject({
        message: "Really bad"
      });
    }
  }, 1000);
  return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)

(在实际代码中get()使用$http而不是$timeout当然).这是一个带有代码的Plnkr,任何人都可以对这个问题有所了解吗?

javascript promise angularjs angular-promise

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

如何呈现实现接口的组件?

假设我有一个接口(或实际组件)ListItemRenderer和一个MyRendererComponent实现该接口的组件(或扩展基本组件)

@Component({
    selector: 'my-renderer',
    template: '<div>My renderer</div>'
})
export class MyRendererComponent implements ListItemRenderer {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想将这个具体的实现传递给另一个组件,例如

@Component({
    selector: 'my-list',
    template: `
        <ul [renderer]="renderer" [items]="items">
            <li *ngFor="let item of items">
                <!-- what goes here? -->
            </li>
        </ul>
    `
})
export class MyList {
    @Input() renderer: ListItemRenderer;
    @Input() items: any[];
    ...
}
Run Code Online (Sandbox Code Playgroud)

显然,父组件将具有renderer类型的公共属性ListItemRenderer.问题是,我如何在我的网站中使用该组件<li>(参见上文中的" 内容? ")?

angular2-template angular

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

为什么Angular2不能注入我的服务?

我正在编写一个plnkr来测试一些路由问题突然出现这个错误消息,无论我在代码中改变了什么都不会消失:

EXCEPTION:错误:未捕获(在承诺中):无法解析EmployeeListComponent的所有参数:(?).

这是代码的相关部分:

export class EmployeeListComponent {
  employees: Employee[];
  constructor(private _employeeService: EmployeeService) {
    _employeeService.getAll().subscribe(employees =>
      this.employees = employees);
  }
}
Run Code Online (Sandbox Code Playgroud)

所以似乎Angular无法解决EmployeeService,对吧?我在上面的片段中对此进行了评论,当然,没有错误.

难道我忘了办理注册手续,它main.ts还是app.component.ts?不,

import {
  Component
} from '@angular/core';

import { 
    ROUTER_DIRECTIVES
} from '@angular/router';

import {
  EmployeeService
} from './employee.service';


@Component({
  selector: 'plk-app',
  template: '<router-outlet></router-outlet>',
  directives: [ 
    ROUTER_DIRECTIVES
  ],
  providers: [
    EmployeeService
  ]
})
export class AppComponent {

}
Run Code Online (Sandbox Code Playgroud)

我应该注册main.ts吗?好吧,当我第一次出现这个错误时,我就把它移到app.component.ts了检查是否会解决它,但事实并非如此.

目前我无法看到森林中的树木,而Angular的错误消息并没有真正帮助(它们从来没有).这里有人能发现这个问题吗?plnkr可以在这里找到.

angular2-services angular

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

如何使用嵌套模块进行路由应该在Angular 2中工作?

我不能因为对饼干的喜爱而弄清楚如何配置Angular 2路由器的最新版本(最终版本中的那个).我有一个相当大的Angular 2 RC5应用程序启动并运行,但在我继续前进之前需要迁移到最终版本.

在这个应用程序中,我有很多嵌套组件,根据谷歌的文档,应该组织为模块中的功能.我的应用中的典型网址如此

user/34/section/95/client/13/<feature>
Run Code Online (Sandbox Code Playgroud)

但也有一些其他的,比如

user/34/settings
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,settings将是一个功能模块.

我已经阅读了这些文档,这些文档相当冗长,并不急于切入追逐,只是发现这个案例根本没有涉及.我无法相信这种情况不会起作用,这似乎是一个巨大的疏忽,所以我想问题是我还没有完全理解这个路由器实际上是如何工作的 - 我感觉我是我不是唯一的一个.

我已经创建了这个plunker来说明我的观点.

在这个plunker我有2级嵌套

app -> benutzer (user) -> klient (client)
Run Code Online (Sandbox Code Playgroud)

足以使问题出现.预期的结果是我可以导航到

benutzer/78/klient/56
Run Code Online (Sandbox Code Playgroud)

即路由器实际上找到了该路由,此时它没有.

在我将代码移动到plunker并添加之前dashboard.component(因为我无法在plunker中轻松修改URL,所以我不得不诉诸routerLink)我实际上可以导航到

klient/56
Run Code Online (Sandbox Code Playgroud)

这是不可能的.看起来在另一个模块中定义的每个路由都被添加到根目录而不是彼此重叠.

非常感谢任何帮助.

angular2-routing angular2-router3 angular

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

ChartJS的渐变折线图

我发现了很多有关如何渐变填充图表下方区域的文章,但我想这样做:

在线渐变

ChartJS可以做到吗?

chart.js

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