如何在Angular 2中创建我自己的maxLength验证器?我可以找到的所有示例都使用类似于'required'的验证器,这意味着他们已经知道规则.他们只接受一个参数 - 控制本身.如何传递更多参数?
这是我的样本验证器.如何修改它以将数字5作为参数传递?
export class MyValidators {
static minValue(control:Control): {[s: string]: boolean} {
var num = +control.value;
if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
过去在RC.x中工作的东西都不再有用了.
我试过这些:
PlatformServices.Default.Application.ApplicationVersion;
typeof运算(控制器).GetTypeInfo()Assembly.GetCustomAttribute <AssemblyFileVersionAttribute>()版.;
他们都返回1.0.0.0代替1.0.0-9这应该是执行后,dotnet publish --version-suffix 9在具有这种project.json: "version": "1.0.0-*"
基本上他们从附图中给我"文件版本"而不是"产品版本",它dotnet publish实际上似乎有所改变.
我正在尝试创建一个 dotnet 核心控制台应用程序。该应用程序是一个简单的实用程序应用程序,应该启动,执行其操作并退出。使用 Visual Studio 生成的标准控制台应用程序模板很容易实现。但是现在我们有了 HostBuilder,它似乎更有吸引力,因为它带来了与 WebHostBuilder、DI、Loggin 等的统一体验。
但看起来这种方法仅适用于长时间运行的后台服务。它将一直启动并一直保持到外部终止事件(如 Ctrl-C)。
有没有办法从内部结束这种类型的应用程序?
对离线服务器执行Angular2 http调用并没有在它的"错误响应"对象中提供太多信息,我在Observable的.catch(错误)操作符或订阅错误委托中得到它们(它们实际上共享相同的信息).但正如您在控制台的屏幕截图中看到的那样,zone.js以某种方式显示了实际错误.那么,我怎样才能获得这个特定的错误信息(net :: ERR_CONNECTION_REFUSED)?
以下是plunker:https://plnkr.co/edit/WIFNVIEVqls4gXk21Muj
有两个模块都定义了路由.模块2导入模块1以便使用其中的组件.您永远无法导航到模块2.而是加载模块1.
模块1路由:
const routes: Routes = [
{ path: '', component: Module1Component }
];
Run Code Online (Sandbox Code Playgroud)
模块2路由:
const routes: Routes = [
{ path: '', component: Module2Component }
];
Run Code Online (Sandbox Code Playgroud)
应用路由:
const routes: Routes = [
{ path: 'module1', loadChildren: 'app/module1/module1.module#Module1Module' },
{ path: 'module2', loadChildren: 'app/module2/module2.module#Module2Module' }
];
Run Code Online (Sandbox Code Playgroud)
谢谢.
尝试执行以下操作并获得"插入({{}})表达式预期"错误.
<ul>
<li *ngFor="#item of items">
<a href='' (click)="foo('{{item.name}}')">{{item.name}}</a>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)
谢谢!
当我xunit从VS 2017 运行我的测试时,工作目录与VS 2015中的工作目录不同,甚至更难看 - 只是执行测试和调试工作目录是不同的.
在执行模式下它就像 UnitTestProject\bin\debug\netcoreapp1.1
在调试中 - C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\
当我dotnet test从我的项目文件夹中运行时,它就是这样UnitTestProject
我更喜欢后者,这实际上就是VS 2015中的情况 - 它总是在所有三种情况下都是项目目录.
所以问题是如何使VS 2017(dotnet test除非现在有一种新方法)使用相同的工作目录.
处理http响应的Сommon方法是这样的:
return this._http.get(url)
.map((res: Response) => res.json());
Run Code Online (Sandbox Code Playgroud)
这提供了一个Observable<Object[]>其中Object被动态创建从JSON反序列化类型.然后你可以在*ngFor="let item of result | async"等等中使用这个结果......
我想获得一个特定的类型实例(意味着使用newoperator来调用类型的构造函数).尝试了不同的方法来实现这样的目标:
.map((res: Response) => { let obj = res.json(); return new MyObject(obj.id, obj.name);})
Run Code Online (Sandbox Code Playgroud)
但得到这个错误: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
这种方式似乎有效,但它过于复杂,可能无效:
.map((res: Response) => {
let results = <MyObject[]>[];
let obj = res.json();
obj.forEach(
function (o: any) {
results.push(new MyObject(o.id, o.name));
}
);
return results; …Run Code Online (Sandbox Code Playgroud) 我是否必须在@ngModule中注册每个管道?我有一个仅由单个特定组件使用的.很高兴在同一个文件中声明它,所以没有其他人知道它.我相信之前有可能 - 只是找不到合适的语法.
谢谢.
angular ×5
.net-core ×2
angular-http ×1
binding ×1
c# ×1
events ×1
http ×1
json ×1
observable ×1
parameters ×1
rxjs ×1
testing ×1
validation ×1
version ×1
xunit ×1