我正在使用msal.js来验证用户身份.我成功获得了令牌.在azure portal的redirectURl中,我将路径指定为" http:// localhost:44340 ".
我的app.routing模块如下所示:
const routes: Routes = [
{ path: 'authentication', component: LoginComponent },
{ path: '', redirectTo: '/lists', pathMatch: 'full' , canActivate: [AuthenticationGuard] },
{ path: 'lists', component: ApplicationContainer , canActivate: [AuthenticationGuard]}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)
我的问题是当用户登录时我得到令牌并且当redirecturi到达'/ lists'时.我有一个gaurd.在gaurd的一侧,由于页面未重定向,因此尚未设置标记值.这就是为什么它一直都是假的,我被重定向回登录页面.
我有 MD 卡内容。在它里面我有一个 div 和一个 md-card-content 。md-card-content(inner) 的内容我想向右移动。我使用过padding-left= 50%,但如果第一个 div 中的文本较长,它就会超出页面。我也用过
layout-align="end start"但是没用。
<md-card>
<md-card-content layout="row">
<div layout="column">
<div>
<md-icon md-svg-icon="extraIcons:offline" class="md-24"></md-icon>
<span class="md-subhead">{{vm.device.serialNumber}}</span>
</div>
<div>
<md-icon md-svg-icon="extraIcons:offline" class="md-24"></md-icon>
<span class="md-subhead">{{vm.device.ipAddress}}</span>
</div>
</div>
<md-card-content class="layout-row layout-align-end-start">
<div>
<md-icon md-svg-icon="extraIcons:{{vm.device.connectionStatus|lowercase}}" class="md-24 "></md-icon>
</div>
<div>
<md-icon md-svg-icon="extraIcons:{{vm.device.operationalStatus|lowercase}}" class="md-24 {{vm.device.operationalStatus|lowercase}} "></md-icon>
</div>
<!--
<div>
<md-icon md-svg-icon="extraIcons:{{vm.device.overallStatus|lowercase}}" class="md-24 {{vm.device.overallStatus|lowercase}} "></md-icon>
</div>
-->
<div ng-if="vm.device.requiresMaintenance">
<md-icon md-svg-icon="extraIcons:maintenance" class="md-24 maintenance"></md-icon>
</div>
</md-card-content>
</md-card-content>
</md-card>
Run Code Online (Sandbox Code Playgroud) 我目前从日历控件获取日期,并使用 luxon 我添加天数、分钟数并将其更改为 LongHours 格式,如下所示: newValue :是我从前端获得的值(日历控件)
let formattedDate: any;
FormattedDate = DateTime.fromJSDate(new Date(newValue)).plus({ days: 1, hours: 3, minutes: 13, seconds: 10 }).toLocaleString(DateTime.DATETIME_HUGE_WITH_SECONDS)
console.log(formattedDate);
const formattedDateParsed = DateTime.fromJSDate(new Date(formattedDate));
const newValueParsed = DateTime.fromJSDate(new Date(newValue));
var diffInMonths = formattedDateParsed.diff(newValueParsed, ['months', 'days', 'hours', 'minutes', 'seconds']);
diffInMonths.toObject(); //=> { months: 1 }
console.log(diffInMonths.toObject());
Run Code Online (Sandbox Code Playgroud)
目前 formattedDateParsed 为“Null”
我能得到一些关于如何解析日期以便计算差异的帮助吗
回到 materialc1,我能够在我的材质菜单中呈现一个按钮列表,如下所示:
<md-menu>
<md-button ng-click="vm.openMenu($mdMenu, $event)">
<md-icon md-svg-icon="extraIcons:toolbox" aria-label="Toolbox"></md-icon>
</md-button>
<md-menu-content>
<md-menu-item ng-repeat="hi in vm.ListofPizza">
<md-button ng-click="vm.orderPizza(hi.id)">
{{hi.name}}
</md-button>
</md-menu-item>
</md-menu-content>
Run Code Online (Sandbox Code Playgroud)
我试图在 material2/angular2 中做同样的事情,如下所示:
<button mat-fab color="primary" [matMenuTriggerFor]="menu">
<mat-icon svgIcon="extraIcons:toolbox">
</mat-icon>
</button>
<mat-menu #menu="matMenu">
<mat-menu-item *ngFor="let hi ofListofPizza">
<button mat-button> {{hi.name}}</button>
</mat-menu-item>
Run Code Online (Sandbox Code Playgroud)
然而,这给了我下面提到的错误:
一个元素上不能有多个模板绑定。仅使用一个名为“模板”或以 * ("
菜单=“垫菜单”>
我究竟做错了什么?
我有 webapi 返回我的数据,我需要将数据下载到 txt 文件中。我已经使用下面的代码完成了它,并且我得到了想要的结果。我以某种方式在寻找更好的方法。有没有角度的方法可以做到这一点?
$scope.downloadResponseAsInfoFile = function (response) {
var link = document.createElement("a");
link.download = "info.txt";
var data = "text/json;charset=utf-8," + encodeURIComponent(response);
link.href = "data:" + data;
link.click();
};
Run Code Online (Sandbox Code Playgroud)
如果我没有得到服务器的响应,我该如何处理异常。
我能够使用翻译管道翻译文本,但目前正在努力使用翻译服务的 get 和 instant 方法加载翻译。下面是我在 app.component.ts 中的代码
export class AppComponent {
event : string;
constructor(private translate: TranslateService) {
translate.addLangs(["en", "fr"]);
translate.setDefaultLang('en');
let LangChangeEvent : {}
let browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');
this.translate.get('ALL_LOCATIONS_TREEVIEW').subscribe((event: String) => {
console.log(event);
});
}
}
Run Code Online (Sandbox Code Playgroud)
我正在控制台中打印事件。我希望每当用户改变语言时它的翻译也会改变。我的其余翻译(使用管道)工作正常,但我看不到控制台中语言变化的变化。我缺少什么?