我真的很难在Angular 2应用程序中创建全局变量.
我已经用Google搜索并在过去的3个小时内阅读了StackOverflow上的很多帖子,但似乎我无法让它工作.我真的希望你能帮助我,我为提出这个问题而道歉.
所以我的文件名为globals.ts,如下所示:
import { Injectable } from "@angular/core";
@Injectable()
export class Globals {
var role = 'test';
}
Run Code Online (Sandbox Code Playgroud)
我想在我的组件的HTML视图中使用变量角色,如下所示:
{{ role }}
Run Code Online (Sandbox Code Playgroud)
我已经通过以下方式将globals.ts文件添加到我的app.module.ts:
providers: [
Globals
],
Run Code Online (Sandbox Code Playgroud)
无论我在这个文件上做了什么,它都没有用.我不想做的是必须手动导入每个组件中的globals.ts文件,这就是我想使用提供程序功能的原因.
我真的希望你能帮助我,再次抱歉.
最好的祝福,
AE
我正在使用Angular 5,我使用angular-cli创建了一个服务
我想要做的是创建一个服务,读取Angular 5的本地json文件.
这就是我的......我有点卡住......
import { Injectable } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
@Injectable()
export class AppSettingsService {
constructor(private http: HttpClientModule) {
var obj;
this.getJSON().subscribe(data => obj=data, error => console.log(error));
}
public getJSON(): Observable<any> {
return this.http.get("./assets/mydata.json")
.map((res:any) => res.json())
.catch((error:any) => console.log(error));
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能完成这个?
我有一个包含表单的模态,当模态被销毁时,我在控制台中收到以下错误:
表单提交已取消,因为表单未连接
模态被添加到一个<modal-placeholder>
元素中,该元素是<app-root>
我的顶级元素的直接子元素.
从DOM中删除表单并在Angular 2中删除此错误的正确方法是什么?我目前正在使用componentRef.destroy();
所以我试图在Firebase和Heroku上构建和部署我的Angular 4应用程序,但是我遇到了如下错误:
/ Users/.../...中的错误(57,49):属性'firebase'在类型'{production:boolean; }".
它发生在我运行时ng build --prod
,我的部署服务器工作正常.这是我的app.module.ts文件,供参考:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { Ng2ScrollimateModule } from 'ng2-scrollimate';
import { Ng2PageScrollModule } from 'ng2-page-scroll';
import { HttpModule } from '@angular/http';
import {
trigger,
state,
style,
animate,
transition,
keyframes
} from '@angular/animations';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { environment …
Run Code Online (Sandbox Code Playgroud) heroku environment-variables firebase firebase-hosting angular
我正在制作一个动态的表格.A Field
有一个值列表.每个值都由一个字符串表示.
export class Field{
name: string;
values: string[] = [];
fieldType: string;
constructor(fieldType: string) {this.fieldType = fieldType;}
}
Run Code Online (Sandbox Code Playgroud)
我的组件中有一个函数,它为字段添加了一个新值.
addValue(field){
field.values.push("");
}
Run Code Online (Sandbox Code Playgroud)
值和按钮在我的HTML中显示如下.
<div id="dropdown-values" *ngFor="let value of field.values; let j=index">
<input type="text" class="form-control" [(ngModel)]="field.values[j]" [name]="'value' + j + '.' + i"/><br/>
</div>
<div class="text-center">
<a href="javascript:void(0);" (click)="addValue(field)"><i class="fa fa-plus-circle" aria-hidden="true"></i></a>
</div>
Run Code Online (Sandbox Code Playgroud)
只要在输入值中写入一些文本,输入就会失去焦点.如果我向字段添加许多值,并且我在一个值输入中写入一个字符,则输入将失去焦点,并且字符将写入每个输入.
如果可能的话,没有JavaScript库或许多笨重的代码,我正在寻找最简单的方法来格式化一个日期,从现在开始以下列格式:
13th March 2013
我使用的代码是:
var newdate = new Date(+new Date + 12096e5);
document.body.innerHTML = newdate;
Run Code Online (Sandbox Code Playgroud)
从现在起两周后返回日期和时间,但是像这样:2013年3月27日星期三21:50:29 GMT + 0000(格林威治标准时间标准时间)
这是jsFiddle中的代码.
任何帮助,将不胜感激!
我已经设置了Passport来验证存储在mongodb中的用户.似乎工作正常:身份验证成功/失败,会话变量设置.但是,让Passport检查会话是否失败.有些东西似乎是错误的,因为我添加到deserializeUser
回调中的console.log语句从未见过光.我认为我的问题与deserializeUser
从未被调用有关.有人能够诊断我的失误吗?
// Passport configuration
passport.serializeUser(function(user, cb){ cb(null, user.id) });
passport.deserializeUser(function(uid, cb){
console.log("Trying to deserialize user: "+uid);
User.findById(uid, function(err, user){
cb(err, user);
});
});
// auth strategy function
passport.use(new LocalStrategy({usernameField: 'email'},
function(email, pass, done){
User.findOne({email: email}, function (err, user) {
if (err)
return done(err);
if (!user)
return done(null, false, {message: "Couldn't find user"});
var crypted = bcrypt.hashSync(pass, user.salt);
if(user.hashpass != crypted)
return done(null, false, {message: "Bad password"});
return done(null, user);
});
}
));
passport.CreateSession = function (req, …
Run Code Online (Sandbox Code Playgroud) 我有一个带有一些输入的组件,我希望在它发生变化时得到通知.我目前正在通过实现ngOnChanges
和确定哪些输入已更改来工作.但是,我更喜欢将我的输入声明设置为@Input('select-values') selectValues:Observable<any>
.这将允许我订阅以更清洁的方式发生的任何新变化.
ngOnInit() {
this.selectValues.subscribe(() => console.log('yay!'));
}
Run Code Online (Sandbox Code Playgroud)
这个问题是我得到了例外TypeError: this.selectValues.subscribe is not a function
.
刚刚发现这也有效 - 组件交互.使用setter拦截输入属性更改.
我在更新面板下的页面中编写了以下代码.
protected void myGrid_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
if (e.CommandName =="EditNames")
{
long lSelectedName = Convert.ToInt64(e.CommandArgument);
Session["SelectedItem"] = lSelectedName;
Response.Redirect("EditItem.aspx");
}
else if (e.CommandName =="DeleteNames")
{
long lSelectedName = Convert.ToInt64(e.CommandArgument);
ValidName.DeleteItem(lSelectedName);
ScriptManager.RegisterStartupScript(this, GetType(), "Key", "alert('Name deleted sucessfully')", true);
}
}
catch (System.Threading.ThreadAbortException)
{
}
catch (Exception ex)
{
Error handling code...
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我在重定向时遇到线程中止异常.但是,我通过使用错误处理程序解决了它System.Threading.ThreadAbortException
.
但我不确定为什么在重定向时出现错误.即使我解决了这个问题,我想知道我编码的方式是否有任何错误,或者是否有任何方法可以阻止错误触发.
给你的意见......
请注意,该页面位于AJAX UPDATE PANEL下.
我有点想到如何实现一个reducer,其实体可以有相同类型的子.
让我们以reddit注释为例:每个注释都可以有子注释,可以自己注释等等.为了简化原因,注释是类型的记录{id, pageId, value, children}
,pageId
是reddit页面.
如何为减速机建模?我正在考虑让reducer成为一个map - > id的注释,你可以使用它来逐页过滤pageId
.
问题是,例如当我们想要为嵌套的注释添加注释时:我们需要在地图的根上创建记录,然后在父子属性中添加其id.要显示我们需要获取所有这些注释的所有注释,请过滤掉我们在顶部的那些注释(例如,将它们作为orderedList保存在页面reducer中)然后迭代它们,从注释对象获取时我们遇到使用递归的孩子.
有没有比这更好的方法或有缺陷?
angular ×6
javascript ×5
.net ×1
asp.net ×1
c# ×1
date ×1
firebase ×1
flux ×1
forms ×1
heroku ×1
html ×1
json ×1
ngfor ×1
node.js ×1
passport.js ×1
reactjs-flux ×1
redux ×1
session ×1
typescript ×1