现在,我有一个初始页面,其中有三个链接.点击最后的"朋友"链接后,会启动相应的朋友组件.在那里,我想获取/获取我的朋友的列表进入friends.json文件.直到现在一切正常.但我仍然是使用RxJs的observables,map,subscribe concept的angular2的HTTP服务的新手.我试图理解它并阅读一些文章,但在我开始实际工作之前,我不会理解这些概念.
在这里,我已经制作了除HTTP相关工作之外的plnkr.
myfriends.ts
import {Component,View,CORE_DIRECTIVES} from 'angular2/core';
import {Http, Response,HTTP_PROVIDERS} from 'angular2/http';
import 'rxjs/Rx';
@Component({
template: `
<h1>My Friends</h1>
<ul>
<li *ngFor="#frnd of result">
{{frnd.name}} is {{frnd.age}} years old.
</li>
</ul>
`,
directive:[CORE_DIRECTIVES]
})
export class FriendsList{
result:Array<Object>;
constructor(http: Http) {
console.log("Friends are being called");
// below code is new for me. So please show me correct way how to do it and please explain about .map and .subscribe functions and observable pattern.
this.result = http.get('friends.json')
.map(response => …
Run Code Online (Sandbox Code Playgroud) 开始学习angular2 beta组件路由.到目前为止我已经这样做了.
http://plnkr.co/edit/4YWWGhuBWd2CoWpC3GeY?p=preview
我复制了以下必需的CDN.请看看这里.
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.0/angular2-polyfills.js"></script>
<script src="https://rawgithub.com/systemjs/systemjs/0.19.6/dist/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.0/Rx.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.0/angular2.dev.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.0/router.dev.js"></script>
Run Code Online (Sandbox Code Playgroud)
SRC/boot.ts
import {Component} from 'angular2/core';
import {ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,LocationStrategy} from 'angular2/router';
import {bootstrap} from 'angular2/platform/browser';
import{ComponentOne} from 'src/cone';
import{ComponentTwo} from 'src/ctwo';
@Component({
selector: 'my-app',
template: `
<h1>Component Router</h1>
<nav>
<a [routerLink]="['ComponentOne']">One</a><hr/>
<a [routerLink]="['ComponentTwo']">Two</a>
</nav>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path:'/component-one', name: 'ComponentOne', component: ComponentOne},
{path:'/component-two', name: 'ComponentTwo', component: ComponentTwo}
])
export class AppComponent { }
bootstrap(AppComponent, [
ROUTER_PROVIDERS
]);
Run Code Online (Sandbox Code Playgroud)
SRC /锥
import {Component,View} from …
Run Code Online (Sandbox Code Playgroud) 我有一个模板,其中包含文本框,一个'span'标记和一个'div'标记.
'div'标签有'selectedColor'自定义指令.当输入值改变时,我想更改'span'和'div'标签的背景颜色.
所以最后我希望我的指令对输入变化做出反应并设置'div'标签的背景颜色.
我还想在输入值更改事件中更改"span"背景颜色.
boot.ts
import {Component,bind} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {FORM_DIRECTIVES} from 'angular2/form';
import {selectedColorDirective} from 'src/directive';
import {Directive, ElementRef, Renderer, Input} from 'angular2/core';
@Component({
selector: 'my-app',
template: `
<input type="text" [(ngModel)]="color" />
<br>
<span > I'm {{color}} color <span>
<div [mySelectedColor]="color"> I'm {{color}} color </div>
`,
directives: [selectedColorDirective]
})
export class AppComponent{
color:string;
constructor(el:ElementRef,renderer:Renderer)
{
this.color="Yellow";
renderer.setElementStyle(el, 'backgroundColor', this.color);
}
}
bootstrap(AppComponent, []);
Run Code Online (Sandbox Code Playgroud)
directive.ts
import {Directive, ElementRef, Renderer, Input} from 'angular2/core';
@Directive({
selector:"[mySelectedColor]",
host: …
Run Code Online (Sandbox Code Playgroud) 在 Angular2 中,我正面临这个问题。当您刷新页面时。URL 保持不变,但它不会在RouterOutlet
.
除了刷新页面问题外,一切正常。
应用程序
import {Component,bind} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {FORM_DIRECTIVES} from 'angular2/form';
import{HomeCmp} from 'Angular/src/Home/home.ts';
import {ContactUsCmp} from 'Angular/src/ContactUs/contactus.ts';
import {Router,ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS} from 'angular2/router';
@Component({
selector: 'micropuppy-app',
templateUrl: "ANGULAR/Templates/home.html",
directives:[HomeCmp,ROUTER_DIRECTIVES,ContactUsCmp],
template: ` <nav>
<ul class="nav navbar-nav">
**<li><a [routerLink]="['Home']">One</a><hr/></li>
<li><a [routerLink]="['ContactUs']">Contact Us</a></li>**
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Technologies <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Angular</a></li>
<li><a href="#">.NET</a></li>
</ul>
</li>
</ul>
</nav>
<router-outlet></router-outlet>`
})
@RouteConfig([
{path:'/Home', name: 'Home', component: HomeCmp}
{path:'/ContactUs', name: …
Run Code Online (Sandbox Code Playgroud)