如果函数 canActivate 的值为 false,我无法将受保护的组件HeaderComponent重定向到该LoginComponent组件。
该HeaderComponent组件和他们的孩子受到保护,只有访问URLhttp://localhost:3000/#/header/index时出现黑屏,我希望它被引导到http://localhost:3000/#/auth是登录屏幕
有谁知道如何帮助我?
auth.guard.ts
import {Injectable} from '@angular/core';
import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from '@angular/router';
import {Observable, BehaviorSubject} from 'rxjs/Rx';
import 'rxjs/operator/take';
import {LoginService} from './login/login.service';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private loginService: LoginService, private router: Router) {}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | boolean {
this.loginService.logado()
.subscribe(
data => {
return data //true
},
error => {
this.loginService.redirectUrl = state.url;
this.router.navigate(['/auth']);
return error …Run Code Online (Sandbox Code Playgroud) 我提出这个问题,是因为在客户端服务器应用程序中,服务器会为每个请求发送带有隐藏在表单中的不同令牌的html。该令牌通过密钥在服务器上构建。
但是Angular 2的所有形式都已经在客户端上了。对于包含令牌的表单,他需要在客户端中存在一个秘密密钥,对我而言,这已经是一个安全漏洞。
所以我问一个问题,在Angular 2中使用csrf令牌是否有意义?如果答案是肯定的,那怎么办?
我不确定如何通过循环(例如)生成多个ListTiles for()。
我不知道Flutter如何渲染小部件,因为在Angular 2中,只需*ngFor在布局(html)中插入指令即可。
我在Flutter文档中找不到这样的主题。
主镖
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: "Myapp",
home: new HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) => new Scaffold(
appBar: new AppBar(
backgroundColor: new Color(0xFF26C6DA),
),
body: new ListView (
children: <Widget>[
new Card(
child: new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
const ListTile(
leading: const Icon(Icons.album),
title: const Text('The …Run Code Online (Sandbox Code Playgroud) 我试图控制FAB中较小项目的可见性,根据下面的gif:
但是我无法opacity在项目中插入.在任何地方我都会发生某种错误.我不知道是否opacity是最好的方法.
要隐藏我相信动画的项目,可以控制它们出现的时间.
以下是我迄今取得的成就:
你能帮我解决这个问题吗?
以下是上面的gif代码:
import 'package:flutter/animation.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(home: new HomePage()));
}
class HomePage extends StatefulWidget {
@override
HomePageState createState() => new HomePageState();
}
class HomePageState extends State<HomePage> with TickerProviderStateMixin {
int _angle = 90;
bool _isRotated = true;
void _rotate(){
setState((){
if(_isRotated) {
_angle = 45;
_isRotated = false;
} else {
_angle = 90;
_isRotated = true;
}
});
}
@override
Widget build(BuildContext context) {
return new Scaffold( …Run Code Online (Sandbox Code Playgroud) Python:我想知道这个方法listdir在哪里,因为他不在模块os.py中.在这个模块中没有一个方法:
def listdir ()
Run Code Online (Sandbox Code Playgroud) 我试图创建一个翻转效果,但是在开始动画之前,我试图使变换保持在容器的中心。
但是,即使使用FractionalOffset(0.5, 0.5)或Center()包装Transform()结果也仍然位于的顶部Container,如下图所示。
您能帮我把它放在容器的中央吗?
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget{
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Container(
alignment: new FractionalOffset(0.5, 0.5),
height: 144.0,
width: 360.0,
decoration: new BoxDecoration(
border: new Border.all(color: …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个Radioin showDialog,但是发生的动画Radio不会出现在showDialog.
例如:当点击时foo2没有任何反应,当你退出showDialog并返回它时,foo2被选中.
下面是代码和显示正在发生的事情的gif:
import "package:flutter/material.dart";
void main() {
runApp(new ControlleApp());
}
class ControlleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: "My App",
home: new HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
HomePageState createState() => new HomePageState();
}
enum _RadioGroup {
foo1,
foo2
}
class HomePageState extends State<HomePage> {
_RadioGroup _itemType = _RadioGroup.foo1;
void changeItemType(_RadioGroup type) {
setState(() { …Run Code Online (Sandbox Code Playgroud) 如何使用ListView.builder
我已经尝试修改所有内容来减小项目的大小,ItemCategory但大小保持不变.
使用ListView,根据下图,尺寸是最小的商品:
使用扑-奇怪的ListView行为后刷新代码项目是良好的大小,而是通过改变ListView到ListView.builder完全的大小变化和ItemCategory类是一样的
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new CategoryPage(),
);
}
}
class CategoryPage extends StatefulWidget {
@override
CategoryPageState createState() => new CategoryPageState();
}
class CategoryPageState extends State<CategoryPage> {
Color blueAppBar = new Color(0xFF26C6DA);
List<Widget> listCategories = [];
List listaDB = [];
List lista2DB = []; …Run Code Online (Sandbox Code Playgroud) 我执行了Flutter Launcher Icons程序,它运行良好,在我的图标更改了以下文件夹中的图像后,所有应用程序图标都已更改:
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
但是,有 1 个图标未更改,我不知道如何更改。
在此图像下方是颤动图标的剩余部分。
Icon Flutter: 颤振演示
这个图标应该已经改变了,因为所有其他的也是
你能告诉我你怎么处理这个吗?
我正在尝试创建下面的动画,其中有小部件Container.
我尝试使用该类,Dismissible但它的动画不会在某一点停止,它会结束并随着项目消失,根据下面的gif:
我插入的代码到SlideTransition类,但我不知道如何整合onHorizontalDragStart,onHorizontalDragUpdate,onHorizontalDragEnd产生与隐退插件的预期效果.
你能帮我解决一下这个问题吗?
请按照以下代码和您的屏幕:
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController _controller;
Animation<double> _animation;
bool _dragUnderway = false;
@override
void initState() {
_controller = new AnimationController(
vsync: …Run Code Online (Sandbox Code Playgroud)