我正在尝试设置我的环境,所以当我在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
我已经构建了一个通过$ 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) 我在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) 我遇到了一个不知从何而来的奇怪错误。我的应用程序快完成了,我正在测试它,然后我注意到数据没有更新。数据库得到更新,我可以直接点击 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) 所以我使用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()只是返回输入字段的值.
我是 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?
按照本指南,我可以使用身份验证
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
我正在寻找一种方法来阻止Chrome和Safari中OS X上发生的弹性滚动.
如果您不明白我的意思,那么当您在页面位于顶部时向上滚动,或在页面位于底部时向下滚动,并且在页面后面显示灰色背景.
有一个单页应用程序的CSS解决方案,您只需添加overflow:hidden到html或body
但是,我需要能够滚动.
我已经提出了一个使用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)
现在我已经添加了一个检查,如果我们滚动浏览页面的底部.这种方法不起作用,它非常不合理地弹跳.
我正在为组件库制作模态组件。我在组件库中创建了一个第三方模态库。一个主要功能是能够通过服务传递组件并将其动态添加到模式中。
我的模式库有一个静态方法,允许您将组件添加到模块的入口组件中。看起来像:
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) 我正在使用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的形式访问输出.这样的事情可能吗?
我目前正在使用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)