我有一个带有一个路由器插座的Angular2应用程序,根据侧面菜单中单击的链接显示不同的组件.
主要组件的标记包含这样的<router-outlet>外观
<div *ngIf="authenticated == false">
<app-login></app-login>
</div>
<div *ngIf="authenticated">
<div class="page home-page">
<header class="header">
<app-navbar></app-navbar>
</header>
<div class="page-content d-flex align-items-stretch">
<div class="sidebar-container">
<app-sidebar-menu></app-sidebar-menu>
</div>
<div class="content-inner">
<app-page-header></app-page-header>
<div id="sub-content">
<router-outlet></router-outlet>
</div>
<app-footer></app-footer>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我单击演示链接,将演示演示组件,但如果我单击Home链接,则主组件将呈现在DOM中的演示组件上方.点击它们几次将产生这样的DOM
<div _ngcontent-c0="" id="sub-content">
<router-outlet _ngcontent-c0=""></router-outlet>
<app-home _nghost-c6="">...</app-home>
<app-demo _nghost-c7="">...</app-demo>
<app-home _nghost-c6="">...</app-home> <!-- Why so many here? Should be just either one <app-home> or <app-demo> -->
<app-demo _nghost-c7="">...</app-demo>
<app-home _nghost-c6="">...</app-home>
<app-demo _nghost-c7="">...</app-demo>
<app-footer _ngcontent-c0="" _nghost-c5="">...</app-footer>
</div>
Run Code Online (Sandbox Code Playgroud)
路线定义为 …
我们刚刚将其中一个应用程序升级到Angular 5,并开始转换为rxjs v5.5中引入的lettable 运算符.
因此,我们使用.pipe()运算符将可观察的管道重写为新语法.
我们之前的代码看起来像这样,如果抛出错误,则.catch()内部.switchMap()不会中断效果的运行.
@Effect()
loadData$ = this.actions$
.ofType(LOAD_DATA)
.map((action: LoadData) => action.payload)
.withLatestFrom(this.store.select(getCultureCode))
.switchMap(([payload, cultureCode]) => this.dataService.loadData(payload, cultureCode)
.map(result => {
if (!result) {
return new LoadDataFailed('Could not fetch data!');
} else {
return new LoadDataSuccessful(result);
}
})
.catch((err, caught) => {
return Observable.empty();
});
);
Run Code Online (Sandbox Code Playgroud)
如果在调用中抛出错误dataService,它将被捕获并处理(简化了错误处理).
有了新的语法和用法.pipe(),我们现在有了这个
@Effect()
loadData$ = this.actions$
.ofType(LOAD_DATA)
.pipe(
map((action: LoadData) => action.payload),
withLatestFrom(this.store.select(getCultureCode)),
switchMap(([payload, cultureCode]) => this.dataService.loadData(payload, cultureCode)),
map(result => …Run Code Online (Sandbox Code Playgroud) 我正在使用LINQ to SQL从数据库中进行选择.我想选择一个由值组成的列String,但是由另一个包含"优先级"值的列排序int.
这就是我的LINQ语句现在的样子:
var query = from vk in db.Valdkurs
where vk.pnr == pnr
select vk.kursnamn.OrderByDescending(x => vk.prioritet);
Run Code Online (Sandbox Code Playgroud)
在第三行代码NotSupportedException中抛出异常消息
类型'System.String'不支持序列运算符
我得出结论,这可能是因为
vk.kursnamn.OrderByDescending(x => vk.prioritet);
Run Code Online (Sandbox Code Playgroud)
哪里vk.Kursnamn是String类型.
我怎样才能选择vk.Kursnamn并按顺序排序vk.Priority?
我正在使用http://react-bootstrap.github.io/ Carousel 组件。我正在尝试自定义包含一些文本的轮播指示器,并使其看起来像一个带有文本的按钮,但将渲染“ol”标签反应为一个新的 CarouseItem 并且没有重定向功能
return (
<Carousel id="sampleSlide" indicators={false}>
<ol className="carousel-indicators">
<li data-target='#sampleSlide' data-slide-to="0" className="active"></li>
<li data-target= '#sampleSlide' data-slide-to="1"></li>
</ol>
<CarouselItem>
<div className="itemContent">
Hello World
</div>
</CarouselItem>
<CarouselItem>
<div className="itemContent">
Hello World
</div>
</CarouselItem>
</Carousel>
);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以自定义它或任何其他方法吗?
使用C#,我TextBox.Text从.ascx页面获取一个值.当我将值的相等性与LINQ查询中的常规字符串对象进行比较时,它总是返回false.
我得出的结论是,它们的编码方式不同,但到目前为止还没有转换或比较它们的运气.
docname = "Testdoc 1.docx"; //regular string created in C#
fetchedVal = ((TextBox)e.Item.FindControl("txtSelectedDocs")).Text; //UTF-8
Run Code Online (Sandbox Code Playgroud)
当表示为文字时,上述两个字符串是相同的,但是byte[]由于编码,它们的比较明显不同.
我尝试了很多不同的东西,比如:
System.Text.Encoding.Default.GetString(utf8.GetBytes(fetchedVal));
Run Code Online (Sandbox Code Playgroud)
但那将返回价值"Testdoc 1.docx".
如果我改为尝试
System.Text.Encoding.Default.GetString(System.Text.Encoding.Default.GetBytes(fetchedVal));
Run Code Online (Sandbox Code Playgroud)
它返回"Testdoc 1.docx"但是Equals()-check仍然返回false.
我也试过以下,这似乎是推荐的方法,但没有运气:
byte[] utf8Bytes = Encoding.UTF8.GetBytes(fetchedVal);
byte[] unicodeBytes = Encoding.Convert(Encoding.UTF8, Encoding.Unicode, utf8Bytes);
string fetchedValConverted = Encoding.Unicode.GetString(unicodeBytes);
Run Code Online (Sandbox Code Playgroud)
罪魁祸首似乎是空白,因为在检查字节序列时,它始终是不同的第七个字节.
你如何正确地从UTF-8转换为C#中的默认字符串编码?
发生了未处理的异常:
ENOENT: no such file or directory, lstat
'/Users/Desktop/node_modules'
See "/private/var/folders/3p/l_k1wk8n76v3cfwnxk0blx000000gn/T/ng-
DF5EZ7/angular-errors.log" for further details.
Run Code Online (Sandbox Code Playgroud)
每当我这样做时ng serve,就会发生此错误,谁能告诉我错误的原因是什么。长时间停留在此。
我在Label控件中显示不同的值,从BindingSource绑定到 a 的 aDataGridView取决于选择了哪一行。
现在,标签具有如下所示的数据绑定:
this.label9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bev_BindingSource, "countryRegion", true));
Run Code Online (Sandbox Code Playgroud)
它成功地显示了countryRegion列的值。
是否可以从两列设置绑定为一个连接的结果,在这种情况下,countryRegion和country?
我正在调用web api来检查urlalias是否可用,对于此任务,我在异步验证器中使用了httpservice.问题是,当调用验证器时,将执行所有正确的代码路径(所有console.log()运行并按预期运行).
无论来自验证的promise是否返回/解析为null或者{ 'isUrlAliasActivityMainAvailable': true },控制器总是将错误对象显示为跟随,从而将表单状态保持为无效,为什么(血腥地狱!)?
我正在使用:angular:2.1.0和rxjs:5.0.0-beta.12
这是我的formbuilder:
this.formBuilder.group({
//...
"urlAliasActivityMain":[null,[ ValidatorsZr.isUrlAliasActivityMainAvailableAsyncValidator(this.httpActivityService)]],
});
Run Code Online (Sandbox Code Playgroud)
这是我的验证器:
public static isUrlAliasActivityMainAvailableAsyncValidator(httpActivityService: HttpActivityService) {
return function (control: FormControl): Promise<any> | Observable<any> {
const promise = new Promise<any>(
(resolve, reject) => {
httpActivityService.isUrlAliasActivityMainAvailable(control.value)
.subscribe(
(data: any) => {
console.log("isUrlAliasActivityMainAvailableAsyncValidator");
console.log(data);
if (data == false) {
console.log("data == false");
resolve({ 'isUrlAliasActivityMainAvailable': true });
}
else {
console.log("data == true");
resolve(null);
}
},
)
});
return promise;
}
}
Run Code Online (Sandbox Code Playgroud) 为什么下面提到的代码打印4,3,2,1,0,为什么不打印4,4,4,4,4.由于引用sb是相同的,所以为什么不指向最后更新的值,为什么不将所有值更新为4
package iteration;
import java.util.Stack;
public class test {
public static void main(String[] args) {
Stack stack = new Stack();
StringBuilder sb;
for (int i = 0; i < 5; i++) {
sb = new StringBuilder();
sb.append(i);
stack.add(sb);
}
for (int i = 0; i < 5; i++) {
System.out.println(stack.pop());
}
}
}
Run Code Online (Sandbox Code Playgroud) 我已经向我添加了一个DataGridView控件来TabControl显示存储在本地应用程序数据库的单个表中的数据Cellar.sdf.
当我将数据源添加到DataGridView时,我选择要显示数据的表并预览数据.它显示数据库中的内容.
当我构建项目时,我收到以下错误:
The type name 'CellarDataSetTableAdapters' does not exist in the type 'Winecellar.Winecellar'
The type name 'CellarDataSet' does not exist in the type 'Winecellar.Winecellar'
Run Code Online (Sandbox Code Playgroud)
我的项目名称是'Winecellar'.当我在VS2012中创建项目时,它创建了一个子文件夹,导致文件结构'Winecellar.Winecellar',但我不确定这是否与此问题有关.在文件夹里面我确实有文件,CellarDataSet它说我失踪了.
我是否TableAdapter必须为我的数据库创建一个单独的数据库,或者我必须以不同的顺序执行操作才能使其工作?
导致我的错误的代码行在我的Form1.Designer.cs文件中,
(1) this.cellarDataSet = new Winecellar.CellarDataSet();
this.wineBindingSource = new System.Windows.Forms.BindingSource(this.components);
(2) this.wineTableAdapter = new Winecellar.CellarDataSetTableAdapters.WineTableAdapter();
Run Code Online (Sandbox Code Playgroud)
(我在MSDN论坛上发现了一个类似的主题,虽然我无法通过阅读它来解决我的问题.请在此处阅读.
angular ×4
c# ×4
rxjs ×2
angular-cli ×1
angular5 ×1
carousel ×1
components ×1
data-binding ×1
datagridview ×1
dataset ×1
encoding ×1
formbuilder ×1
java ×1
javascript ×1
linq ×1
linq-to-sql ×1
ngrx-effects ×1
ngrx-store ×1
npm ×1
promise ×1
reactjs ×1
sql-order-by ×1
string ×1
tableadapter ×1
validation ×1
winforms ×1