这是我第一个Hello World
来自Angular 2快速入门指南的简单角度2应用程序.
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
@Component({
selector: 'ng2-app',
template: '<h1>My first Angular 2 App</h1>'
})
export class AppComponent { }
bootstrap(AppComponent);
Run Code Online (Sandbox Code Playgroud)
当我运行时,应用程序运行正常npm start
但我的IntelliJ IDE在行中显示错误bootstrap(AppComponent)
参数类型AppComponent不能分配给参数类型Type
查看bootstrap
函数声明,AppComponent
需要扩展Type
.
export declare function bootstrap(appComponentType: Type, customProviders?: Array<any>): Promise<ComponentRef>;
Run Code Online (Sandbox Code Playgroud)
我的问题是:
是否期望Angular组件扩展Type
?
我想将Angular 2与Django集成,我还有一些问题需要解决.
如何将Angular 2的插值语法更改{{ }}
为(( ))
或类似的?
如何将cookie中的CSRF令牌添加到每个HTTP帖子?
在Angular 1中,我做了类似这样的事情:
.config(function($httpProvider) {
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
});
Run Code Online (Sandbox Code Playgroud)
使用:
ng test
Angular CLI默认在Chrome中运行测试,这很棒,但是如果我需要在仅限控制台的环境(无头浏览器)中运行它们呢?
如果我可以指定我是否希望每次运行时都不需要浏览器,那将是很好的,所以类似于:
ng test --browsers MyHeadLessBrowser
编辑:
运行PhantomJS我得到以下内容:
PhantomJS 2.1.1(Linux 0.0.0)ERROR TypeError:useValue,useFactory,数据不可迭代!在http:// localhost:9876/_karma_webpack_/polyfills.bundle.js:854
eferenceError:在国际:找不到变量的http://本地主机:9876/_karma_webpack_/vendor.bundle.js(线49362)intlDateFormat @ HTTP://本地主机:9876/_karma_webpack_/vendor.bundle.js:49362:20
我们的团队对Angular 2的alpha版本感到非常兴奋,我们只是急切地等待它的稳定发布并开始使用它.但是在Misko的Angular 2的ng-conf 2015期间,我们遇到了令我困惑的以下事情
打字稿!是否真的需要使用typescript来获得更好的性能,而不是编写我们一直在做的简单的JS代码.我们发现了一些评论说明打字稿有助于提高性能.
ES6功能.由于角度2将使用很多es6功能,这意味着我们必须等待所有浏览器至少支持角度2所需的那些功能才能在我们的生产应用程序上启动它.
Web组件.由于角度2提供了创建Web组件的工具,而且我发现了一些关于创建自己的(使用聚合物)的博客,我们的团队创建它们有多难?或者,如果我们坚持旧的指令创造的事情,它会更好吗?
性能.我已经看过Angular + React的这个视频,它提供了角度与角度+反应与角度2的良好比较.但是我不确定角度2是否真的很快或者如果我们可以继续建立角度+反应应用程序,以避免等待角度2稳定或浏览器支持角度使用的es6功能.
我不确定我是否已经很好地构建了我的问题,但在我开始学习角度2之前,上面是我的担忧,因为他们演示角度2 +打字稿似乎会为我和我的团队带来很多收益曲线.
如果有人能澄清我上面列出的问题,我将非常感激.
谢谢.
我有一条注册了一些数据的路线:
const routes: Routes =
[
{path: 'my-route', data: { title: 'MyTitle' }, component: MyComponent},
];
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下方法访问路线的数据ActivatedRoute
:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({...})
export class MyComponent implements OnInit {
private routeData;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.routeData = this.route.data.subscribe((data) => {
console.log(data); // this is returning an empty object {}
});
}
}
Run Code Online (Sandbox Code Playgroud)
但由于某些原因,这data
是一个空洞的对象.
如何解决这个问题呢?
嗨,我有一点点Angular 1背景,我正在学习Angular 2.
对于使用Angular 1启动,只有依赖是添加角度源angular.js
或者angular.min.js
,
通过脚本标记尝试使用Angular 2时,
<script src="angular2.js"></script>
Run Code Online (Sandbox Code Playgroud)
我收到的错误是,
Uncaught ReferenceError: System is not defined
Uncaught ReferenceError: define is not defined
所以我搜索了SE并找到了,system.js
并且require.js
必须在加载之前加载angular2
.
我设法加载这两个库的任何方式,
我喜欢编译TypeScript并提供js
文件,而不是将所有脚本发送到客户端并编译/转换客户端的所有内容.
我的IDE是WebStorm,当我尝试编写一个简单的组件时,
import {Component} from 'angular2/core';
@Component
class Hello{
name:string;
constructor() {
this.name = "HelloWorld";
}
}
Run Code Online (Sandbox Code Playgroud)
我在TypeScript编译器上收到此错误main.ts
,编译为main.js
,
Error:(1, 25) TS2307: Cannot find module 'angular2/core'.
Run Code Online (Sandbox Code Playgroud)
TypeScript编译所有内容但不从angular进行导入.
我的简单index.html
如下所示,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body> …
Run Code Online (Sandbox Code Playgroud) 我曾在Angular 1工作.它显然有一个控制器,它充当了View和Model之间的中介.我意识到在Angular 2中我们没有任何控制器.
那么我们仍然可以将Angular 2称为MVC框架吗?我知道MVC是一种设计模式,你可以用任何语言实现它.但是,关于Angular 1,我从很多人那里听说它是一个MVC框架,我看到的大多数例子都说明Angular 1是MVC,Controller将Model与View分开.所以,我想知道,现在在Angular2中有组件,我们仍然可以将其称为MVC吗?或者作为组件本身遵循MVC范例,因为我确实看到在每个组件中我们分开View和Data并使用绑定,也许我们仍然可以将其称为MVC.
在我的Angular 4应用程序中,我们假设我在服务中.
在某些时候,我想要求用户进行确认,目前我只是在做一个confirm(...)
请求:
const result = confirm('Are you sure?');
如果相反我想显示一个ngx-bootstrap
模态,比方说,两个按钮"是"或"否",并获得类似的结果?
编辑:在我的情况下,我通过玩主题解决了我的问题.在这里,您可以找到我的解决方案,以防它对其他人有用.然而,该解决方案并没有解决这个问题,即从模态返回一个值,所以我把它打开.
我正在使用Typescript构建一个包含100个独立ts文件的大型库.以前我使用导出模块XXX(稍后重命名为导出命名空间XXX)用于我的所有类,但正如书中所说,这不是推荐的方式,我应该使用import.
所以我尝试导入.这工作得很好:
import * as mylib from "./source/source.ts";
Run Code Online (Sandbox Code Playgroud)
但由于我有100个文件,我不想为所有这些文件添加这样的行.我想通过mylib变量访问所有类.
所以我尝试了这个:
import * as mylib from "./source/";
Run Code Online (Sandbox Code Playgroud)
但是一旦我这样做,我得到:找不到模块'./source/'
有没有办法从一个包含多行文件的文件夹中导入所有类?
我将通过https://angular.io/docs/ts/latest/tutorial/toh-pt5.html上的Angular2教程 .一切顺利的路由.Visual Studio代码显示前03行的错误:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
如
[ts]
Module '"c:/Users/ktran/Source/Repos/angular2-quickstart-ts/node_modules/@angular/core/index"' has no exported member 'NgModule'.
Run Code Online (Sandbox Code Playgroud)
文件夹node_modules:
有什么想法吗?
angular ×9
typescript ×4
javascript ×3
angular-cli ×1
django ×1
jasmine ×1
karma-runner ×1
modal-dialog ×1
unit-testing ×1