通过使用Http,我们调用一个执行网络调用并返回http observable的方法:
getCustomer() {
return this.http.get('/someUrl').map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)
如果我们采用这个可观察的并添加多个订阅者:
let network$ = getCustomer();
let subscriber1 = network$.subscribe(...);
let subscriber2 = network$.subscribe(...);
Run Code Online (Sandbox Code Playgroud)
我们想要做的是确保这不会导致多个网络请求.
这可能看起来像是一个不寻常的场景,但实际上很常见:例如,如果调用者订阅了observable以显示错误消息,并使用异步管道将其传递给模板,那么我们已经有两个订阅者.
在RxJs 5中这样做的正确方法是什么?
也就是说,这似乎工作正常:
getCustomer() {
return this.http.get('/someUrl').map(res => res.json()).share();
}
Run Code Online (Sandbox Code Playgroud)
但这是在RxJs 5中这样做的惯用方式,还是我们应该做其他事情呢?
注意:根据Angular 5 new HttpClient
,.map(res => res.json())
所有示例中的部分现在都没用,因为现在默认采用JSON结果.
我怎么知道我使用的Angular版本是什么?
我试过了:
angular --version
angular --v
angular -version
angular -v
Run Code Online (Sandbox Code Playgroud)
但得到 -bash: angular: command not found
我知道yeoman --version
我正在使用0.9.6
但如何获得angularjs版本?
我知道对于旧版本的.NET,您可以通过以下方式确定是否安装了给定版本
https://support.microsoft.com/en-us/kb/318785
Run Code Online (Sandbox Code Playgroud)
是否有官方方法确定是否安装了.NET Core?
(我不是指SDK,我想检查没有SDK的服务器,以确定它是否安装了DotNetCore.1.0.0-WindowsHosting.exe)
我可以看到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NET Cross-Platform Runtime Environment\.NET Framework 4.6\Win\v1-rc1
Run Code Online (Sandbox Code Playgroud)
在我的Windows 7机器上版本号为1.0.11123.0,但我在Windows 10机器上看不到相同的东西.
我有时会在getter的属性中看到缩写.例如这两种类型:
public int Number { get; } = 0
public int Number => 0;
Run Code Online (Sandbox Code Playgroud)
如果这两者之间有任何差异,有人可以告诉我.他们的表现如何?它们都是只读的吗?
在我看来,我必须在使用下面的实体框架删除它之前检索一个对象
var customer = context.Customers.First(c => c.Id == 1);
context.DeleteObject(customer);
context.Savechanges();
Run Code Online (Sandbox Code Playgroud)
所以我需要两次打数据库.有更简单的方法吗?
我有3个表叫:
我想在GUI上显示所有资源名称的表.在每行的一个单元格中,我想列出该资源的所有应用程序(以逗号分隔).
所以问题是,在SQL中执行此操作的最佳方法是什么,因为我需要获取所有资源,而且还需要获取每个资源的所有应用程序?
我是否首先从资源运行select*然后遍历每个资源并对每个资源执行单独的查询以获取该资源的应用程序列表?
有没有办法在一个查询中执行此操作?
我正在使用Microsoft Visual Studio 2017提供的Angular模板开发ASP.Net Core 2.1.我的客户端应用程序工作正常.在用户认证竞争之后,我想启动用户会话管理,其中我存储客户端用户IP地址.我已经在互联网上搜索过这个,但到目前为止还没有找到任何解决方案.
以下是我访问过的一些参考链接:
在我的ValuesController.cs中,我也试过下面的代码:
private IHttpContextAccessor _accessor;
public ValuesController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
public IEnumerable<string> Get()
{
var ip = Request.HttpContext.Connection.RemoteIpAddress.ToString();
return new string[] { ip, "value2" };
}
Run Code Online (Sandbox Code Playgroud)
其中ip变量我得到空值并得到此错误
Request.HttpContext.Connection.RemoteIpAddress.Address引发了Type'System.Net.Sockets.SocketException'的异常
你能告诉我如何在ASP.NET Core 2.1中获取客户端IP地址吗?
这是app.module.ts
我试图在不同的项目中完成导入地图,它工作正常,但在这个项目中,它不起作用.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {HttpModule} from '@angular/http';
import { AppComponent } from './app.component';
import { PagesComponent } from './pages/pages.component';
@NgModule({
declarations: [
AppComponent,
PagesComponent
],
imports: [
BrowserModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
app.component.ts
import { Component } from '@angular/core';
import {PageService} from './page.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ["../assets/public/css/adminstyle.css",
"../assets/public/css/demo.css",
"../assets/public/css/style.css"
,"../assets/public/css/stylesheet.css"],
providers:[PageService]
})
export class AppComponent {
title …
Run Code Online (Sandbox Code Playgroud) 我有一个项目列表,如果我选择一个项目,那么我将提供上一个和下一个选项.我添加了一个快速代码示例,但我希望有更好/更快的方法来执行此示例,例如500个项目.
是否有linq选项或其他什么?
我检查了enumarator,但只有一个moveNext en无法设置当前.
快速举例:
项目是一本字典
project是字典中存在的keyvaluepair
var match = false;
var save = new KeyValuePair<ExtendedProjectLightPlan, Page>();
var before = new KeyValuePair<ExtendedProjectLightPlan, Page>();
var after = new KeyValuePair<ExtendedProjectLightPlan, Page>();
foreach (var p in projects)
{
before = save;
save = p;
if (match)
{
after = p;
break;
}
if (p.Key.Id == project.Key.Id)
{
match = true;
}
}
Run Code Online (Sandbox Code Playgroud) 首先,抱歉我的英语不好......
我有四个实体:用户,应用程序,捆绑和实体.以下是他们的关系(级联持续和删除,请参阅下面的代码):
它工作正常.但是用户可以将他的两个实体作为默认实体,我需要直接访问它们.
所以我添加用户两个字段,entity1和entity2,具有1-1关系.现在我的应用程序崩溃了:
An exception occurred while executing 'DELETE FROM bundle WHERE id = ?' with params {"1":13}:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`misc`.`entity`, CONSTRAINT `FK_E284468F1FAD9D3` FOREIGN KEY (`bundle_id`) REFERENCES `bundle` (`id`))
Run Code Online (Sandbox Code Playgroud)
我尝试了几件事,包括在这篇文章中创建的那些,但我无法解决它.
欢迎提出任何帮助,谢谢.
编辑:我需要指出User-> Entity关系是optionnal:User的entity1和entity2可以为null.即使它们都为空,也会发生错误.
这是我的实体定义:
# User :
/**
* @ORM\OneToMany(targetEntity="\sfCommands\ContentBundle\Entity\Application", mappedBy="user", cascade={"remove"}, orphanRemoval=true)
* @ORM\OrderBy({"name" = "ASC"})
*/
protected $applications; …
Run Code Online (Sandbox Code Playgroud)