我已经在具有Bitnami映像的AWS服务器上部署了Angular2应用程序.该应用程序由Apache(在端口8080上配置虚拟主机)提供服务,并且只要我从头开始就可以正常工作index.html.如果我想访问另一个页面(已在其中配置RouteConfig),我会收到404 not found错误消息.以下是虚拟服务器的配置:
Listen 8080
<VirtualHost _default_:8080>
DocumentRoot "/opt/bitnami/apps/MyApp"
<Directory "/opt/bitnami/apps/MyApp">
Options All
Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我正在使用 Angular Material 滑块,我想在滑块的两端显示代表滑块设置的最小值和最大值的标签。或者,我想显示一个带有点和相对标签的比例,显示哪个值与哪个点相关。这是 javascript 库提供的其他滑块中存在的功能,但我在 Angular Material 滑块 API 中没有找到类似的功能。我想知道使用 Angular Material 提供的滑块是否也可以获得类似的行为。
使用 Javascript,我可以使用模块(即import和export语句)并将代码细分到不同的文件中,并让这些代码在浏览器中运行。
让我们看一个由 3 个文件组成的最简单的例子:my-function-js.js、main-js.js和page-js.html
我的函数 js.js
export function myFunctionJs() {
console.log("here I am, a pure Javascript function");
}
Run Code Online (Sandbox Code Playgroud)
main-js.js
import { myFunctionJs } from "./my-function-js.js";
myFunctionJs();
Run Code Online (Sandbox Code Playgroud)
页面-js.html
<!DOCTYPE html>
<html>
<body>
<script type="module" src="./main-js.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我尝试对 Typescript 执行相同的操作(具有.ts扩展名的文件中的相同代码),我会失败,因为编译器根据提供给编译器的选项生成各种“模块相关” module,但无法简单地维护类似的代码它就是这样,并且让它像 Javascript 与模块一样工作。
我意识到这是一个理论问题,我们应该使用捆绑器等,但我只是想知道是否有一种简单的方法可以让模块在浏览器中工作,只需使用 Typescript 编译器。
我有一个嵌入 Angular MaterialMatSelect元素的组件。
在我正在编写的测试中,我需要模拟某个选项的选择,并确保selectionChange与该MatSelect元素关联的Observable实际触发。
到目前为止我的代码是
const mySelect: MatSelect = fixture.nativeElement.querySelector('#mySelect');
mySelect.value = 'new value';
Run Code Online (Sandbox Code Playgroud)
但不幸的是mySelect.selectionChange,这并没有发出通知,因此我的测试工作。非常欢迎有关如何执行此操作的任何想法。
我有一个简单的<div>生成 using*ngFor指令列表,类似于
<div *ngFor="let item of items() | async ; let i=index"
[ngClass]="getItemClass(i)"
(click)="itemClick(i)"</div>
Run Code Online (Sandbox Code Playgroud)
如您所见,该方法返回的 Observable 每次items()发出时都会异步填充列表。在我的情况下,这样的 Observable 是 a ReplaySubject,如果这对知道有任何用处。然后我<div>使用方法定义要应用于每个元素的类getItemClass。
我还想使用方法对每个项目上的点击事件做出反应itemClick(i: number)。
问题
任何时候div单击一个元素,即任何时候itemClick(i: number)运行该方法,似乎<div>都重建了整个s列表。我得出这个结论是观察到任何时候div点击一个元素,该items()方法也会运行。
题
<div>单击其中一个元素时是否可以避免重建列表?我已经设置changeDetection为OnPush但它似乎并没有解决我的问题。
angular ×4
angular-test ×1
apache ×1
bitnami ×1
es6-modules ×1
javascript ×1
node-modules ×1
typescript ×1