随着AngularJS 2出来,文档build议三种语言: Typescript , Javascript和Dart 。 我只是习惯了Javascript EcmaScript 5,我想知道这三者的优缺点是什么? 当问这个问题的时候,文档在打字稿上更加发达,其他人(甚至他们自己的语言飞镖)也很苗条: Typescript: 4个教程,16个开发人员指南,4个testing指南 Javascript: 0个教程,4个开发人员指南,0个testing指南 Dart: 0个教程,14个开发人员指南,0个testing指南 我是否应该改变使用Javascript进行开发的习惯,并遵循Angular 2使用Typescript的build议? 它真的改变了Javascript的概念吗? AngularJS 2.0官方网站
我对module/namespace/export和import, require, reference用法感到困惑。 从Java的背景,有人可以解释我什么时候使用什么和什么是正确的devise? 当我写样本项目时,我觉得自己很乱 到目前为止,这是我的理解1. module是外部的包2. namespace是内部的包 我没有得到我们如何分类他们? 何时导出类或名称空间或包? 如果我们导出包/名称空间,那么所有的类都被导出或需要被显式导出 他们每个人如何import/需要? 根据文档 ,如果我为每个经理/模型创build每个“ts”文件,Typescript不build议使用“命名空间”? 直接使用参考path? Please explain in detail as I am coming from different background and not sure about ES6/ES5 etc 。 我看到有几个人正在提出/混淆同样的问题。 我希望有人能够详细解释真实世界的情况
我以前使用angular-cli@1.0.0-beta.10,现在我更新到angular-cli @ webpack beta.11。 经过很多自定义更改,我得到它的工作。 唯一的是,现在我无法使用webstorm和chromedebugging器来debugging我的angular 2应用程序,因为我没有使用ng serve获取任何ts文件。 使用angular-cli@1.0.0-beta.10,使用Jetbrains插件debugging我的应用程序非常简单。 如何使用ng服务debugging我的angular 2应用程序Webstorm和Chromedebugging器?
我有一个ASP.NET核心项目,当我尝试构build它时出现此错误: error TS18003: Build:No inputs were found in config file 'Z:/Projects/client/ZV/src/ZV/Scripts/tsconfig.json'. Specified 'include' paths were '["**/*"]' and 'exclude' paths were '["../wwwroot/app","node_modules/*"]'. 1> The command exited with code 1. 1> Done executing task "VsTsc" — FAILED. 这是我的tsconfig.json文件: { "compileOnSave": true, "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true, "lib": [ "es5", "dom" ], "module": "commonjs", "moduleResolution": "node", "noEmitOnError": […]
函数more()应该从get请求中返回一个Observable export class Collection{ public more = (): Observable<Response> => { if (this.hasMore()) { return this.fetch(); } else{ // return empty observable } } private fetch = (): Observable<Response> => { return this.http.get('some-url').map( (res) => { return res.json(); } ); } } 在这种情况下,我只能做一个请求,如果hasMore()是真的,否则我得到一个错误的subscribe()函数subscribe is not defined ,我怎样才能返回一个空的可观察? this.collection.more().subscribe( (res) =>{ console.log(res); }, (err) =>{ console.log(err); […]
TypeScript有很多不同的方法来定义一个枚举: enum Alpha { X, Y, Z } const enum Beta { X, Y, Z } declare enum Gamma { X, Y, Z } declare const enum Delta { X, Y, Z } 如果我尝试在运行时使用Gamma的值,我得到一个错误,因为Gamma没有定义,但Delta或Alpha不是这种情况? 这里的const或者declare含义是什么? 还有一个preserveConstEnums编译器标志 – 这是如何与这些交互?
我正在使用Angular 1.5中的.component()语法进行试验。 看起来,最新的方式是在组件中编码控制器,而不是单独的文件,我可以看到,鉴于组件样板是最小的优点。 问题是我一直编写我的控制器作为打字稿类,并希望继续这样做,因为这似乎是符合Angular2。 我最大的努力就是这样的: export let myComponent = { template: ($element, $attrs) => { return [ `<my-html>Bla</my-html>` ].join('') }, controller: MyController }; class MyController { } 它的工作,但它不是优雅的。 有没有更好的办法?
在ng-for循环中有一组单元组件。 我拥有一切,但我似乎无法弄清楚 目前我有一个 setTimeout(() => { scrollToBottom(); }); 但是这并不是一直工作,因为图像asynchronous地将视口向下推。 什么是适当的方式滚动到angular2聊天窗口的底部?
我知道,TypeScript是一天。 但我很好奇,如果在这里有一些unit testing框架或方式如何编写和运行TypeScript的unit testing? TypeScript可以编译为JavaScript,我可以为该JavaScript编写testing,但这不是我想要的。
我无法在Angular2中创build一个由对象数组支持的select,而不是string。 我知道如何在AngularJS中使用ngOptions来实现它,但是它似乎在Angular2中没有用(我使用的是alpha 42)。 在下面的示例中,我有四个select,但只有两个工作。 'selectstring'是一个简单的基于string的select,它工作正常。 “通过双向绑定select对象”是我尝试使用双向绑定。 不幸的是,它失败的方式有两种 – 当页面加载时,select显示错误的值(foo而不是bar),当我在列表中select一个选项时,值['object Object]'被发送到后备存储而不是正确的价值。 “通过事件select对象”是我试图从$事件获取选定的值。 它也以两种方式失败 – 初始加载与#2相同的方式是不正确的,当我在列表中select一个选项时,从事件中检索“[object Object]”值,所以我不能得到正确的价值。 select被清除。 “通过stringselect对象”是使用工作对象的唯一方法。 不幸的是,它通过使用#1的string数组并将string的值转换为对象并将其转换回来。 我可以做#4,如果这是预期的方式,但它似乎很笨重。 还有另一种方法吗? 我只是在阿尔法呢? 我做了些傻事吗? import {Component, FORM_DIRECTIVES, NgFor} from 'angular2/angular2'; interface TestObject { name:string; value:number; } @Component({ selector: 'app', template: ` <h4>Select String</h4> <select [(ng-model)]="strValue"> <option *ng-for="#o of strArray" [value]="o">{{o}}</option> </select> <h4>Select Object via 2-way binding</h4> <select […]