小编dra*_*mnl的帖子

如何将数据传递给Angular路由组件?

在我的一个Angular 2路线的模板(FirstComponent)中,我有一个按钮

first.component.html

<div class="button" click="routeWithData()">Pass data and route</div>
Run Code Online (Sandbox Code Playgroud)

我的目标是实现:

按钮单击 - >路由到另一个组件,同时保留数据,而不使用其他组件作为指令.

这就是我试过的......

第一种方法

在同一视图中,我存储基于用户交互收集相同的数据.

first.component.ts

export class FirstComponent {
     constructor(private _router: Router) { }

     property1: number;
     property2: string;
     property3: TypeXY; // this a class, not a primitive type

    // here some class methods set the properties above

    // DOM events
    routeWithData(){
         // here route
    }
}
Run Code Online (Sandbox Code Playgroud)

一般情况下我路由SecondComponent通过

 this._router.navigate(['SecondComponent']);
Run Code Online (Sandbox Code Playgroud)

最终传递数据

 this._router.navigate(['SecondComponent', {p1: this.property1, p2: property2 }]);
Run Code Online (Sandbox Code Playgroud)

而带参数的链接的定义是

@RouteConfig([
      // ...
      { path: '/SecondComponent/:p1:p2', …
Run Code Online (Sandbox Code Playgroud)

typescript angular

216
推荐指数
11
解决办法
30万
查看次数

如何正确将角度2(npm)升级到最新版本?

最近我在https://angular.io/docs/ts/latest/tutorial/上开始了Angular 2教程.

然后我继续使用Angular 2 beta 8.现在我恢复了教程,最新的测试版是beta 14.

如果我只是更新npm更新一些模块(预装了教程)更新但不是Angular2(我可以看到npm ls).

如果我做npm更新角度2npm更新angular2@2.0.0beta.14它也没有做任何事情.

npm angular

124
推荐指数
5
解决办法
16万
查看次数

在Typescript中的数组<Type> VS Type []

据我所知,当它是一个数组时,属性的类型可以用两种方式定义.

property_name: type
Run Code Online (Sandbox Code Playgroud)

其中type可以是

Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>)
Run Code Online (Sandbox Code Playgroud)

string[], MyType[], etc. (e.g. let prop1: string[])
Run Code Online (Sandbox Code Playgroud)

这两种情况有什么区别?或者我是否误解了某些东西(也许是关于<>用于铸造的东西?)

编辑,因为问题被标记为重复,我知道有任何关于任何[]的问题,但我仍然在发布之前看过它,对我来说,更多的是关于类型'任何'而不是不同的[] VS < >我问道

typescript

124
推荐指数
2
解决办法
4万
查看次数

在Angular 2应用程序中实例化Typescript中的接口的正确方法是什么?

在我的Angular 2-Typescript应用程序中,我定义了一个接口而不是一个类来允许可选参数.

据我所知,我应该在某处实现接口

导出类myClass实现myInterface {...}

并通过new(...)实例化它

我想知道这是否是正确的方法(在Angular 2中)或者是否有更简单/更好的方法

另外,我应该把实现放在我使用它的组件(.ts)中,接口在哪里或哪里?

typescript angular

22
推荐指数
4
解决办法
6万
查看次数

如何在Angular 2-Typescript中设置可选的类参数?

我知道在Typescript中可选参数可以用问号标记.

但是,我发现实际使用new关键字实例化类的唯一方法.

问题是基于Angular 2的首发"英雄"教程类没有通过new关键字实例化,据我所知,这是由Angular内部完成的.

例如,我有这个代码:

车型/ users.ts

export class User {
    id: number;
    name: string; // I want this to be optional
}
Run Code Online (Sandbox Code Playgroud)

模型/模拟users.ts

import {User} from './user';

export var USERS: User[] = [
    {
       id: 1
       // no name (I wanted it to be optional for user with id 1)
    },
    {
       id: 2,
       name: "User 2"
    },        
]
Run Code Online (Sandbox Code Playgroud)

服务/ user.service.ts

import {Injectable} from 'angular2/core';
import {USERS} from './../models/mock-users';

@Injectable()
export …
Run Code Online (Sandbox Code Playgroud)

typescript angular

21
推荐指数
1
解决办法
4万
查看次数

角度材质:如何设置背景颜色(不含CSS)

我正在使用Angular Material框架开发一个纯Material Design应用程序.

但是,我不明白如何设置容器的背景颜色(例如,具有蓝色背景的登录表单).我当然可以使用CSS,但我想知道是否有一个内置的指令/主题选项来做到这一点.

angular-material

19
推荐指数
1
解决办法
4万
查看次数

如何自定义Angular Material的input/md-input-container组件?

如标题中所述,我如何自定义这些元素?它们似乎使用透明背景,这在大多数背景调色板上很难查看

css pseudo-class angular-material

16
推荐指数
2
解决办法
3万
查看次数

如何在Angular 2中创建启用CORS的HTTP请求?

错误如下:

XMLHttpRequest无法加载http://some_url.herokuapp.com/api/some_api/.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许来源' http:// localhost:3000 '访问.响应具有HTTP状态代码503.

在打电话时

return this._http.post(requestUrl,JSON.stringify(requestBody),requestOptions)

我曾经遇到CORS(使用Angular 1时)的麻烦,我记得一旦CORS被服务器端激活,我不得不转换http请求来解析某些HTTP头.

我很担心它应该如何工作,所以任何解释都是非常受欢迎的.

cors angular

16
推荐指数
1
解决办法
6万
查看次数

Ubuntu - 如何在Python 3.3而不是Python 2.7上安装Python模块(BeautifulSoup)?

我有这个代码(用BS4文档编写):

  from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)

当我运行脚本(使用python3)时,我收到错误:

  ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)

所以安装BeatifulSoup:

  sudo pip install BeatifulSoup4
Run Code Online (Sandbox Code Playgroud)

但是当我再次尝试运行脚本时,我得到了同样的错误.确实BS4安装在:

  BeautifulSoup4 in /usr/local/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)

但我想安装并使用它与python3.3(因为有其他模块不使用python2.7).

我尝试过:

  virtualenv --python=/usr/bin/python2.7 /usr/bin/python3.3
Run Code Online (Sandbox Code Playgroud)

然后再次安装BS4,但没有解决.

任何线索?提前致谢

python ubuntu beautifulsoup python-2.7 python-3.3

14
推荐指数
3
解决办法
6万
查看次数

Angular Material:如何在屏幕上同时显示一个toast one to toast?

我正在使用$ mdToast(Angular Material framework)指令在我的Angular(-Material)Web应用程序中显示几条状态消息.

当用户登录时,如果登录成功,则通过调用以下方式显示toast:

     $scope.showToastMessage = function() {
         var toast = $mdToast.simple()
             .content("Login successful);
             .action('OK')
             .highlightAction(false)
             .position($scope.getToastPosition());
          $mdToast.show(toast).then(function(toast) {
                //...
             }
         }); 
     };
Run Code Online (Sandbox Code Playgroud)

登录成功后,我需要进行另一次检查(例如有效的会话cookie)并显示另一个toast消息,而不会覆盖前一个并且在实际显示前一个之后.

我在这里遇到的问题是:

  • 第二个吐司显示新的之前(可能是由于$ mdTost的异步性质)
  • 这个第二个吐司显示不到一秒然后消失,只留下一个(基本上第二个首先显示,然后在第一个出现时隐藏)

解决方案可以是:

  • 创建内,则第二敬酒.然后回调:这不工作或者因为需要用户干预,按"OK"动作按钮
  • 调用$ mdToast.updateContent(); (https://material.angularjs.org/#/api/material.components.toast/service/ $ mdToast)会覆盖以前的吐司消息(这不是最好的解决方案,但也没关系)但我不能弄清楚如何:

    (1)选择屏幕上显示的特定吐司(假设我有几个不同呼叫显示的祝酒词),和

    (2)在延迟(比如说3秒)之后更新toast消息,以显示使用户不足并且登录成功但是还有一些其他信息.

任何线索?

angular-material

11
推荐指数
1
解决办法
7236
查看次数