我在使用控件和选择框构建动态angular2表单时遇到问题,例如这个plunker:
<select class="form-control" ngControl="power">
<option *ngFor="#p of powers" [value]="p">{{p}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
您可以选择英雄力量,控件将具有相同的值.但是如果按Change Powers,则所选值将为null,但控制值仍为旧值.这是一个严重的问题,我认为这是一个很多错误的来源,当表单显示一件事,但实际上它会提交一些不同的东西,有没有办法更新控件的内容?有updateValue(),但是你必须手动设置在所有这些情况下的价值.
在表单构建之后更新selectbox选项时也会出现类似的情况,它会在selectedbox中显示一个选定的值,而控件值将为null,有关如何处理此问题的任何想法?
我需要从静态方法中访问我的自定义http服务,例如:
import {Control} from 'angular2/common';
import {HttpService} from './http.service';
class UsernameValidator {
static usernameExist(control: Control): Promise<ValidationResult> {
... /* Access my HTTPservice here */
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何访问服务?
我真的不明白对象绑定是如何工作的,所以如果有人能解释我是否可以在基类中使用@Input(),或者更好:装饰器和继承.例如,如果每个表单都应该接收一个客户,我有一个基类:
export class AbstractCustomerForm{
@Input() customer;
...
}
Run Code Online (Sandbox Code Playgroud)
然后我在实际组件中扩展此类:
export AwesomeCustomerForm extends AbstractCustomerForm implements OnInit{
ngOnInit(){
if(this.customer)
doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,客户永远不会被设置:(
如果有人可以帮助我,我完全没有想法.
所以我有这个代码(这是我的代码的一个非常简化的版本):
while(readNewFile())
{
while(getNewStructFromFile())
{
unsigned long starttime = GetTickCount();
customerData.fillFromBinaryData(structPointer);
cout<< GetTickCount() - starttime;
aMap.insert(pair<int,string>(customerData.phoneNumber,""));
}
// Ouptut all data
aMap.clear();
}
Run Code Online (Sandbox Code Playgroud)
基本上,它只是从二进制文件中读取记录.customerData得到数据并用来自它的数据填充变量.然后,它将电话号码插入到地图中(为了调试我实际上只是插入一个int和一个空字符串).
问题是,一段时间后这个程序变得很慢; 如果我注释掉地图插入程序运行正常没有问题,每个文件的执行时间是恒定的.如果我使用地图插入,在几个文件之后,程序再次变得非常慢(从8-10秒到1分钟或更长).但调试时GetTickCount(),它告诉我延迟发生在customerData.fillFromBinaryData(最初0ms,然后它跳到30-40毫秒(填写类变量)).但是,如果我评论这个简单的地图插入,用数据填充对象没有延迟!那逻辑在哪里?有人可以给我一个提示,我是出于想法.对不起,如果这个问题不是很好的话.
我尝试了不同类型的地图,但同样,它告诉我延迟不在地图插入中.
编辑/可能解决方案:
如果有人有类似的问题,我安装了VS2015,使用地图的延迟消失了!我不确定这是如何相关的,但华友世纪!
我们的存储库代码如下所示:
public class PieRepository
{
public void AddCherryPie(string incredientA)
{
try{
...
}
catch(Exception ex){
log("Error in AddCherryPie(" + incredientA + ")");
throw new Exception("Error in AddCherryPie(" + incredientA + ")", ex);
}
}
public void AddApplePie(string incredientA, string incredientB)
{
try{
...
}
catch(Exception ex){
log("Error in AddApplePie(" + incredientA + "," + incerdientB + ")");
throw new Exception("Error in AddApplePie(" + incredientA + "," + incredientB ")", ex);
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,这try -> catch -> log -> …
如何查看 Web 应用程序队列中有多少请求?我有与此相关的性能问题,但我看不到那里有多少请求。
我有连接到应用程序的应用程序洞察力,但在指标“应用程序队列中的 Http 请求”中,我总是得到 0。
我知道队列中有请求,因为如果我设置 AutoScale 时HttpQueueLength > 1它会扩展添加更多实例。
angular ×3
c++ ×2
.net ×1
angular2-di ×1
azure ×1
c# ×1
dictionary ×1
exception ×1
performance ×1
profiler ×1