天道酬勤,学无止境

angular

Lazy loading from CDN

Is it possible to load lazy modules from external server? I'd like to upload my resources onto CDN, but it seems, the lazy modules are loading from my node.js server which is not good for me. My server serves only the index.html of angular app, but the resources will be loaded from cdn. It starts and works fine till a lazy module should be loaded which is relative to my server not to CDN.

2021-06-24 11:38:32    分类:问答    angular

使用 angular2 调用 REST 服务和捕获全局错误的最佳实践 [关闭](Best practice for call REST services and global error catching with angular2 [closed])

问题 关闭。 这个问题需要更加集中。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑这篇文章来关注一个问题。 4年前关闭。 改进这个问题 使用 angular2 REST SERVICE 调用并捕获任何全局异常以处理错误和显示自定义消息的最佳实践是什么。 有没有人有这方面的经验? 回答1 到目前为止,我发现的最佳实践是首先创建全局服务并在那里创建与http相关的方法。 即对于 Get、Put、Post、Delete 请求等,而不是通过使用这些方法调用您的 API 服务请求并使用 catch 块捕获错误并根据需要显示消息,例如:- Global_Service.ts import {Injectable} from '@angular/core'; import {Http, Response, RequestOptions, Headers, Request, RequestMethod} from '@angular/http'; import {Observable} from 'rxjs/Rx'; import 'rxjs/Rx'; @Injecable() export class GlobalService { public headers: Headers; public requestoptions: RequestOptions; public

2021-06-24 11:32:14    分类:技术分享    rest   error-handling   angular

Angular2 从 HTML 模板访问全局变量(Angular2 access global variables from HTML template)

问题 我有一个全局变量来存储这样的国家/地区列表: export var COUNTRY_CODES = ["AD", "AE", "AF" /* and more */]; 在我的一个组件中,我使用普通的 import 语句导入了变量 import { COUNTRY_CODES } from "../constants"; 我可以在我的组件代码中自由访问这个全局变量,但未能在 HTML 模板上实现这样的事情: <option *ngFor="let countryCode of COUNTRY_CODES" [value]="countryCode">{{countryCode | countryName}}</option> 我可以通过定义一个局部变量并在初始化期间将全局变量分配给它来将全局变量传递给组件。 ngOnInit() { this.countryCodes = COUNTRY_CODES; } 并将ngFor更改为在此局部变量上循环以使其工作。 我的问题:这是正确的做法吗? 每次我想在模板中使用全局变量时,我都不太习惯定义桥接变量。 回答1 您正在组件中创建一个变量countryCodes ,但该视图正在访问COUNTRY_CODES * 不能从模板中直接访问全局标识符,如Array 、 window 、 document 、 class 和 enum

2021-06-24 11:30:03    分类:技术分享    angular

在 Angular 2 中使用 ComponentResolver 加载组件时注入不同的提供程序(Injecting different providers while loading components using ComponentResolver in Angular 2)

问题 我们可以在动态加载组件时注入不同的提供者吗? 我的组件 @Component({ moduleId: module.id, selector: "my-component", template: "<div>my-component</div>", providers: [MyComponentService] }) export class MyComponent{ constructor(private ds: MyComponentService) { super(); } } 别的地方, this._cr.resolveComponent(MyComponent).then(cmpFactory => { let instance: any = this.testComponentContainer.createComponent(cmpFactory).instance; }); 所以在上面的代码中,在解析MyComponent同时,这个MyComponentService提供者也将被解析,我们可以根据一些开关来不同地解析它吗? 回答1 ViewContainerRef.createComponent createComponent(componentFactory: ComponentFactory<C>, index?: number, injector

2021-06-24 11:26:14    分类:技术分享    angular   angular2-injection

如何在 angular2 中使用 nativescript 的 WebView?(How to use nativescript's WebView in angular2?)

问题 我正在尝试在我的页面上插入一个web 视图并收听“loadFinishedEvent”...但是为了做到这一点,我需要在我的组件(ts 文件)中找到 webview,通过 nativescript 方式我需要包装我的 xml (UI) 带标签: <Page xmlns="http://schemas.nativescript.org/tns.xsd 但是这样做我得到了这个错误:“ TypeError: this.page.frame._getNavBarVisible is not a function ”,而且没有 Page 标签,我已经尝试过一些方法,但没有成功...... 我也没有找到任何样本,有人可以帮助我吗? 回答1 包含类实现的 .ts 文件 import { Component } from "@angular/core"; @Component({ selector: "Date", templateUrl: "myPage.html", //here is your reference to html page }) export class Angular2WebView { //any class function } 您的 html 文件 myPage.html <GridLayout> <WebView id="webView" url="http

2021-06-24 11:26:09    分类:技术分享    angular   nativescript   angular2-nativescript

Angular2 中 Angular 的 $q 相当于什么?(What's the equivalent of Angular's $q in Angular2?)

问题 Angular2 中 Angular 的 $q 相当于什么? 具体来说,我正在寻找$q.when ,它允许您执行以下操作: return $q.when(['TestResponse']); 回答1 new Promise((resolve, reject) => { if(xxx) { resolve('ok'); } else { reject('error'); } }).then(x => doSomething()) 另请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 或 http://learnangular2.com/es6/promises 回答2 你可以使用原生的 es6 Promise。 制作新 angular 的主要原因之一是 es6 和即将推出的 es7。

2021-06-24 11:16:10    分类:技术分享    javascript   angularjs   angular   angular-promise

为什么我无法在 angular2 中导入 lodash(why I am not able to import lodash in angular2)

问题 我在 angular2 rc1 中使用 angular-cli 进行开发。 我已经通过 npm 安装了 lodash node_module 并使用以下命令在 systemjs 中对其进行了配置: 系统配置文件 /*********************************************************************************************** * User Configuration. **********************************************************************************************/ /** Map relative paths to URLs. */ const map: any = { }; /** User packages configuration. */ const packages: any = { }; //////////////////////////////////////////////////////////////////////////////////////////////// /**********************************************************

2021-06-24 11:15:17    分类:技术分享    node.js   typescript   angular   lodash

Angular2 测试:ComponentFixture 中的 DebugElement 和 NativeElement 对象有什么区别?(Angular2 testing: What's the difference between a DebugElement and a NativeElement object in a ComponentFixture?)

问题 我目前正在整理一些在组件级别测试 Angular 2 应用程序的最佳实践。 我看过一些教程查询夹具的 NativeElement 对象以获取选择器等,例如 it('should render "Hello World!" after click', async(() => { builder.createAsync(HelloWorld).then((fixture: ComponentFixture<HelloWorld>) => { fixture.detectChanges(); let el = fixture.nativeElement; el.querySelector('h1').click(); fixture.detectChanges(); expect(el.querySelector('h1')).toHaveText('Hello World!'); }); })); 但是,在 juliemr 的 Angular 2 测试种子中,她通过父 DebugElement 对象访问 NativeElement。 it('should render "Hello World!" after click', async(() => { builder.createAsync(HelloWorld).then((fixture: ComponentFixture

2021-06-24 11:08:00    分类:技术分享    javascript   unit-testing   dom   angular   jasmine

何时在 Angular 2 中使用 @angular 标签? [复制](When to use @angular tags in Angular 2? [duplicate])

问题 这个问题在这里已经有了答案: Angular 2 中的@angular 是什么? (5 个回答) 4年前关闭。 我试图在boot.ts文件中使用以下代码引导我的应用程序: import {bootstrap} from 'angular2/platform/browser' import {ROUTER_PROVIDERS} from 'angular2/router' import {AppComponent} from './app.component' bootstrap(AppComponent,[ROUTER_PROVIDERS]); 它工作得很好。 现在我想尝试添加谷歌地图,因此导入了angular2-google-maps包,创建了一个map.component.ts文件并将其添加到路由器映射(在app.component.ts文件中定义)。 对于上述包, import {bootstrap} from '@angular/platform-browser-dynamic'; 用于 plunker 代码(作为入门代码提供)。 现在,如果我在index.html页面中添加<map>选择器,就会显示<map> 。 我希望它遵循之前定义的路由。 Bootstrapping 也发生了两次(一次用于AppComponent一次用于Map ) 如何正确引导地图组件

2021-06-24 11:07:24    分类:技术分享    javascript   google-maps   angular   angular2-routing

Ionic 2 getComponent 替代方案(Ionic 2 getComponent alternative)

问题 由于 getComponent 不再可用,我有下一个场景。 在 app.ts 和 app.html 中,我有一个菜单组件和一个导航组件。 在导航组件中,我添加了一个包含选项卡的页面。 单击菜单时,它是应用程序组件的一部分,我希望能够更改选项卡。 最初很容易使用: this.app.getComponent('mytabs').select(3) 现在我明白我需要使用 viewchild 所以我尝试同时使用两者: @ViewChild('mytabs') tabs:Tabs; ion-tab 组件有一个 #mytabs 引用。 和 @ViewChild(Tabs) tabs:Tabs; 两次 this.tabs 变量都是未定义的。 我的猜测是在 app.ts 组件初始化时该组件不可用。 我在这里有哪些选择? 这是我的离子信息 Cordova CLI: 6.1.1 Gulp version: CLI version 3.9.1 Gulp local: Local version 3.9.1 Ionic Framework Version: 2.0.0-beta.7 Ionic CLI Version: 2.0.0-beta.29 Ionic App Lib Version: 2.0.0-beta.16 OS: Node Version: v4.4.0 回答1 @ViewChild

2021-06-24 11:03:00    分类:技术分享    typescript   angular   ionic2