小编Kol*_*lby的帖子

在Visual studio中运行Webpack-dev-server - .net核心项目

我正在尝试设置我的环境,所以当我在Visual Studio 2015中单击运行时,它将安装我的节点模块,然后运行前端webpack-dev-server.

我补充道

"precompile": [ "yarn install", "yarn run start" ]

scripts在我的project.json

如果你想看到我正在运行的启动脚本:https: //github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/scripts/start.js

它有效,有点.它将启动服务器,但不会在浏览器中打开它,它有点破坏VS到我无法停止调试,并且无法关闭VS,因为它正在调试.

在此输入图像描述

那么无论如何我可以按照我想要的方式完成这项工作,或者我应该只使用cmd来启动webpack-dev-server?


我刚尝试过:

"precompile": [ "yarn install", "start cmd /k yarn run start" ]

希望我能让VS打开命令提示符并运行启动脚本,但这不起作用.


我找到了答案.要保持开放,看看是否有人有更好的解决方案.

在我的Startup.cs中,我添加了:

Process.Start("CMD.exe", "/K yarn run start");
Process.Start("cmd", "/C start http://localhost:3000");
Run Code Online (Sandbox Code Playgroud)

第一行在cmd中运行我的命令,第二行在我的webpack-dev-server的端口打开我的默认浏览器.


根据用例可能有效的第二种解决方案.

下载VS节点工具,并在解决方案中创建一个新的空节点项目.您可以转到项目的属性,并且有一个名为的输入Script (startup file).您可以将它指向您的启动脚本,就我而言scripts/start.js

.net visual-studio webpack webpack-dev-server asp.net-core

12
推荐指数
1
解决办法
3689
查看次数

在Angular中防止多个$ http请求.有没有更好的办法?

我已经构建了一个通过$ http返回资源的复杂方法.

该方法返回一个promise,然后检查我的本地缓存是否存在资源.如果是,它将返回缓存的资源,如果不是,它将发出$ http请求.资源缓存后这很好用,但是我在加载时触及此方法的应用程序中有多个函数,并且每个函数都会生成http请求,因为资源尚未返回和缓存.

我想出了一个简单的检查来解决这个问题,但我觉得应该有一个更好的方法.我添加了一个布尔值,如果方法正在获取资源,则设置为true,如果是,我使用半秒超时解析方法,以给予请求时间解决.代码如下.

那么,有更好的方法吗?

   var schools = [];
   var loadingSchools = false;

   function getAllSchools(forceUpdate) {
        return $q(function (resolve, reject) {
            if(loadingSchools) resolve($timeout(getAllSchools, 500));

            else{

                loadingSchools = true;

                if (schools.length && !forceUpdate) {
                    loadingSchools = false;
                    resolve(schools);
                    return;
                }

                console.log('$http: Getting All Schools - schoolService.js');

                $http.get(API_PATH + 'schools_GetAll', {cache:true})
                .success(function(result) {
                    schools = result;
                    loadingSchools = false;
                    resolve(schools);
                })
                .error(function(error) {
                    schools = [];
                    loadingSchools = false;
                    reject(error);
                });
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

在Angular项目中使用Jasmine调用了测试回调函数

我在Angular项目中有一个breadcrumbs组件,你传入一个回调函数,当单击面包屑时会调用它.

用户传入一个对象,该对象包含用于呈现面包屑的信息,以及单击面包屑时的回调.

回调被添加到breadcrumb的onclick事件中,并在用户单击一个时调用.

<li *ngFor="let breadcrumb of breadcrumbs">
  <span (click)="breadcrumb.callback()">{{breadcrumb.title}}</span>
</li>
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的:

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [BreadcrumbsTestComponent, Breadcrumbs]
  });
}));

it('should call given callback when breadcrumb is clicked', async(() => {
  const fixture = TestBed.createComponent(BreadcrumbComponent);
  fixture.detectChanges();

  const breadcrumbElements = fixture.nativeElement.querySelectorAll('.breadcrumb');

  breadcrumbElements.forEach(breadcrumb => {
    breadcrumb.click();
    fixture.whenStable().then(() => {
      expect(breadcrumb.callback).toHaveBeenCalled();
    });
  });
}));

const breadcrumbs = [
  {
    title: 'First Page',
    path: '/first',
    current: false,
    callback: jasmine.createSpy('callback')
  }, {
    title: 'Second Page',
    path: '/second',
    current: true,
    callback: jasmine.createSpy('callback')
  } …
Run Code Online (Sandbox Code Playgroud)

testing jasmine angular

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

如何防止我的 HTTP Get 请求在 Swift 中缓存?

我遇到了一个不知从何而来的奇怪错误。我的应用程序快完成了,我正在测试它,然后我注意到数据没有更新。数据库得到更新,我可以直接点击 URL 并看到数据正在从服务器正确返回,但是当我在 Swift 中打印数据时,它没有改变。

一旦我重新运行应用程序,它就会改变(大多数时候)

我正在使用 Alamofire,但我也尝试了其他两种方法:

let url = NSURL(string: "http://www.stackoverflow.com")
let request = NSURLRequest(URL: url!)

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
Run Code Online (Sandbox Code Playgroud)

let url = NSURL(string: "http://www.stackoverflow.com")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()
Run Code Online (Sandbox Code Playgroud)

所有 3 个都打印出相同的数据。

我猜测这是 Swift 中的缓存问题,但我没有设置任何内容来告诉 Swift 缓存数据,并且在过去几周内一直运行良好。

我今天所做的唯一一件事就是为我的项目创建一个 Git 存储库。

有谁知道这可能是什么原因造成的?


*编辑:

使用阿比·贝克特的回答我尝试了这个:

符合委托 NSURLConnectionDelegate

添加:

func connection(connection: NSURLConnection, willCacheResponse cachedResponse: NSCachedURLResponse) -> NSCachedURLResponse?
{
  return nil // never …
Run Code Online (Sandbox Code Playgroud)

swift

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

使用Codeigniter,如何通过jquery submit()提交表单?

所以我使用php构建了一个向导,其中一个表单要求用户上传图像.

我已经构建了所有内容,唯一的问题是我必须能够在我的一个if语句中说,如果表单是使用jquery的submit()方法提交的.

所以这是在用户选择图像后在jquery中提交表单的代码.

var initUpload = function(){
    $('.filebutton').change(function(e){
        $("form").submit();
    });
};
Run Code Online (Sandbox Code Playgroud)

这就是我的if语句的样子.

if($this->input->post('back')){

   //Tells me that the user clicked on the back button, and to go back 1 step in the wizard.    

}else if(???){

   //This is where I would like to say: if form was submitted with jquery.      

}else{

   //Else the user just clicked "next" and to continue normally.

}
Run Code Online (Sandbox Code Playgroud)

我所知道的:

使用$this->input->post('back')我可以使用带有valueBACK 的按钮检查表单是否已提交.我var_dumped $this->input->post()只是返回输入字段的值.

php jquery codeigniter

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

使用 Prisma 通过关联表查询多对多关系

我是 Prisma 的新手,虽然到目前为止非常容易上手,但我遇到了一个我似乎找不到好的答案的问题。我已经阅读了有关关系查询的文档,但据我了解,Prisma 不支持通过 Fluent api 进行多对多。每个查询必须返回一个实体,然后您可以添加相关表,但就我而言,我的查询将返回许多我想要加入的实体。

这是我的架构的一个简单示例:

model User {
  id String @id @default(uuid())
}


model Workspace {
  id String  @id @default(uuid())
}

model WorkspaceUser {
  workspace   Workspace @relation(fields: [workspaceId], references: [id])
  workspaceId String
  user        User @relation(fields: [userId], references: [id])
  userId      String
}
Run Code Online (Sandbox Code Playgroud)

我希望做类似的事情:

await prisma.workspaceUser.findMany({
  where: { userId: "123" },
}).workspaces();
Run Code Online (Sandbox Code Playgroud)

另外,我注意到智能感知显示有一个 .join() 方法,但文档中没有提到。

Prisma 是否提供了此问题的解决方案,或者我应该使用$queryRaw

prisma

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

授权策略属性始终使用.net核心标识和JwtBearerAuthentication返回403禁止

按照本指南,我可以使用身份验证

Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.AspNetCore.Authentication.JwtBearer
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用角色或声明保护我的api端点.我尝试了两个相同的结果(403)

使用[Authorize]正常工作.

我的代码目前看起来像这样:

控制器:

[Authorize(Policy = "RequireUserRole")]
// Also tried [Authorize(Roles="User")]
public string Get()
{   
  return "YO";
}
Run Code Online (Sandbox Code Playgroud)

启动:

services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<ApplicationContext>();
services.Configure<JWTSettings>(Configuration.GetSection("JWTSettings"));
services.AddAuthorization(options =>
{
        options.AddPolicy("RequireUserRole", policy => policy.RequireRole("User"));
});
Run Code Online (Sandbox Code Playgroud)

...

app.UseIdentity();

var secretKey = Configuration.GetSection("JWTSettings:SecretKey").Value;
var issuer = Configuration.GetSection("JWTSettings:Issuer").Value;
var audience = Configuration.GetSection("JWTSettings:Audience").Value;
var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey));

app.UseJwtBearerAuthentication(new JwtBearerOptions
{
        AutomaticAuthenticate = true,
        AutomaticChallenge = true,
        TokenValidationParameters = new TokenValidationParameters
        {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = signingKey,

                // Validate the JWT …
Run Code Online (Sandbox Code Playgroud)

asp.net claims-based-identity jwt asp.net-identity asp.net-core

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

防止在OS X Chrome和Safari上进行弹性滚动

我正在寻找一种方法来阻止Chrome和Safari中OS X上发生的弹性滚动.

如果您不明白我的意思,那么当您在页面位于顶部时向上滚动,或在页面位于底部时向下滚动,并且在页面后面显示灰色背景.

有一个单页应用程序的CSS解决方案,您只需添加overflow:hiddenhtmlbody

但是,我需要能够滚动.

我已经提出了一个使用Javascript(JQuery)的解决方案,但它仅用于滚动传递到顶部,并且仅适用于chrome.此外,它在Safari中有点儿麻烦.

$(window).on('scroll', function(e){
   scrollAmount = $(this).scrollTop();
   if(scrollAmount < 1){
      $(this).scrollTop(1);
   }
});
Run Code Online (Sandbox Code Playgroud)

所以这只是检查用户滚动低于1意味着他们尝试向上滚动通过页面结束的位置.我试过0但是没用.我一直无法找到一种方法来检查用户滚动是否通过页面底部.

那么有什么想法?

编辑:

$(window).on('scroll', function(e){
   scrollAmount = $(this).scrollTop();
   if(scrollAmount < 1){
      $(this).scrollTop(1);
   }
   if(scrollAmount > $(document).height() - $(window).height()){
      $(this).scrollTop($(window).height());
   }
});
Run Code Online (Sandbox Code Playgroud)

现在我已经添加了一个检查,如果我们滚动浏览页面的底部.这种方法不起作用,它非常不合理地弹跳.

javascript css jquery

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

将动态条目组件传递到模块中,然后再将它们传递到另一个模块中的角

我正在为组件库制作模态组件。我在组件库中创建了一个第三方模态库。一个主要功能是能够通过服务传递组件并将其动态添加到模式中。

我的模式库有一个静态方法,允许您将组件添加到模块的入口组件中。看起来像:

export class A11yModalModule {
  static withComponents(components: any[]) {
    return {
      ngModule: A11yModalModule,
      providers: [{
        provide: ANALYZE_FOR_ENTRY_COMPONENTS,
        useValue: components,
        multi: true
      }]
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

太好了,那行得通。我可以像这样导入模块时将组件传递给它:A11yModalModule.withComponents([ModalContentComponent])

当我将其抽象出另一个级别时,就会发生我的问题。因此,现在有了2个模块,而不是2个模块。我需要像上面一样将一个组件从lib Consumer的模块传递到我的组件模块,然后传递给模式模块。

如何将组件从lib模块传递到模式模块?


我想我越来越近了。这是我的3个模块

// app module
@NgModule({
  declarations: [AppComponent, ModalContentComponent],
  imports: [
    LibModalModule.withComponents([ModalContentComponent])
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }



// lib module
@NgModule({
  imports: [CommonModule],
  declarations: [LibModal],
  providers: [LibModalService],
  exports: []
})
export class LibModalModule {
  static withComponents(components: any[]) {
    return {
      ngModule: LibModalModule,
      imports: [CommonModule, …
Run Code Online (Sandbox Code Playgroud)

javascript angular

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

如何将cat输出路径作为bash脚本中的变量

我正在使用catshell脚本创建一个新文件.它看起来像:

./script.sh > output.txt

如何output.txt在脚本中作为变量进行访问.我试过$1但是那不起作用.

该脚本看起来像:

#!/bin/sh

cat  << EOF
echo "stuff"
EOF
Run Code Online (Sandbox Code Playgroud)

既然没有成为一种os-agnostic方法,有没有办法将输出作为参数传递给脚本,然后将cat结果保存到脚本内的文件中?

所以命令看起来像:./script.sh output.txt我可以以$ 1的形式访问输出.这样的事情可能吗?

linux bash shell cat

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

使用DateTime :: diff()返回两个日期之间的天数

我目前正在使用DateTime :: diff()来返回两个日期之间的天,小时,分钟和秒.

问题是当差异超过30天,而不是返回33天,它返回1个月和3天.

有没有办法告诉它返回天而不是相应的月份.

一些代码:

$date1      =   new DateTime(date('Y-m-d H:i:s', time()));
$date2      =   new DateTime($row['start']);

$interval   =   $date1->diff($date2);

$days       =   $newInfo[$key]['days'] = $interval->format("%d"); 
$hours      =   $newInfo[$key]['hours'] = $interval->format("%h"); 
$minutes    =   $newInfo[$key]['minutes'] = $interval->format("%i"); 
$seconds    =   $newInfo[$key]['seconds'] = $interval->format("%s"); 
Run Code Online (Sandbox Code Playgroud)

php

0
推荐指数
1
解决办法
3623
查看次数