如果调用show(),我打算在DOM中添加一个动态组件.我知道有一个使用ngIf或[hidden]的解决方案来隐藏它并将其用作指令,但我不是这个解决方案的粉丝,因为我不想在我的HTML中声明它.
import {Component} from 'angular2/core';
import {InfoData} from '../../model/InfoData';
@Component({
selector: 'Info',
templateUrl: './components/pipes&parts/info.html',
styleUrls: ['./components/pipes&parts/info.css']
})
export class Info{
infoData: InfoData;
public show(infoData: InfoData) {
this.infoData= infoData;
document.body.appendChild(elemDiv); <----- Here?
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将其声明为提供者,因此我可以调用show().
import {Component} from 'angular2/core';
import {Info} from './components/pipes&parts/Info';
@Component({
selector: 'Admin',
templateUrl: './Admin.html',
styleUrls: ['./Admin.css'],
directives: [Info],
providers: [Info]
})
export class Admin {
constructor(private info: Info) {
info.show(); <---- append the Info Element to DOM
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从Rest Api获取数据:
我试过以下:
var headers: Headers= new Headers({ 'dataType': 'jsonp'});
let options = new RequestOptions({ headers: headers });
return this.http.get('http://aaaddds.de/redmine/issues.json?limit=1200&callback=JSONP_CALLBACK', options)
.map(this.extractData);
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为:
Run Code Online (Sandbox Code Playgroud)No 'Access-Control-Allow-Origin' header
所以当我尝试JSONP时
let params = new URLSearchParams();
params.set('callback', 'JSONP_CALLBACK');
params.set('project_id', '7');
params.set('key', '42d3db30ab061a9f630df1f476c4d127f98d5ad2');
params.set('limit', '1200');
return this.jsonp.get('http://aaaddds.de/redmine/issues.json', { search: params })
.map(this.extractData);
Run Code Online (Sandbox Code Playgroud)
它说 :
未捕获的ReferenceError:未定义__ng_jsonp____req0finished JSONP注入脚本未调用回调
当我做一个Jquery ajax得到它的工作原理:
$.ajax({
url: url,
type: 'GET',
dataType: 'jsonp',
success: function (datsa: any) {
console.log(datsa);
},
error: function (e : any) { alert(e.toString) },
});
Run Code Online (Sandbox Code Playgroud) 我试图实施授权保护https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-child-guard
但我得到一个DI错误,我真的不知道为什么我注入UserService了我的模块.
我RouteGuard在全球模块中宣布,我UserService也是
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [
TranslateModule
],
exports: [
LoadingComponent,
],
declarations: [
LoadingComponent,
],
entryComponents: [],
providers: [UserService,RouteGuard]
})
export class GlobalModule { }
Run Code Online (Sandbox Code Playgroud)
错误:
Uncaught SyntaxError {__zone_symbol__error: Error: Can't resolve all parameters for RouteGuard: ([object Object], ?).
at SyntaxError.ZoneAwa…, _nativeError: ZoneAwareError}
Run Code Online (Sandbox Code Playgroud)
码
import { ParentClass } from 'components';
import { Injectable } from '@angular/core';
import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { UserService } from …Run Code Online (Sandbox Code Playgroud) 我有一个*ngFor,我获取一个英雄列表.现在,如果我改变英雄的价值,我的英雄也应该改变,你怎么做,最好的方式......
<li *ngFor="#hero of heroes">
<input type="text" [value]="hero.name"/>
</li>
Run Code Online (Sandbox Code Playgroud)
我只知道制作一个(更改)="UpdateListByItem(item)"的方法来调用一个方法,但是没有办法为所有项目制作一个双向数据绑定?
我看了这个消息
https://github.com/aspnet/Announcements/issues/153
HttpBadRequest 就是现在 BadRequest
但是我找不到BadRequest 方法以及this.Ok(Object)方法发生了什么?
是否有可能获得我尝试跟随的图像的大小,但我的$ event变量显示我一个数组
<img src="image.png" (load)="dosomething($event)" />
Run Code Online (Sandbox Code Playgroud) 我试图通过promises和http.get处理登录,但我失败了,我得到以下错误:
对象不支持属性或方法'toPromise'
我的代码是:
return this.http.get('http://localhost:5000/login/', {
headers: authHeader
}).map((response) => {
return response.json()
}).toPromise(null);
Run Code Online (Sandbox Code Playgroud)
我得到了:
更新:
JohnPapa将他的项目更新为我的朋友
https://github.com/johnpapa/angular2-there-and-back-again/blob/master/app/core/character.service.ts
angular ×6
typescript ×2
asp.net-core ×1
components ×1
data-binding ×1
http ×1
image ×1
javascript ×1
jsonp ×1