gpt4 book ai didi

javascript - 奇怪的 AngularJS 初学者行为

转载 作者:行者123 更新时间:2023-12-03 06:45:26 24 4
gpt4 key购买 nike

我正在开始学习 AngularJS,但我偶然发现了一种奇怪的行为,我不太明白 (() => {}) 表示法与 (function(){}) 不等价的地方。

我的index.html:

<!DOCTYPE html>
<html ng-app="gemStore">
<head>
<title>AngularJS Store</title>
<script src="./angular.min.js"></script>
<script src="./app.js"></script>
</head>
<body>
<div ng-controller="StoreController as store">
<h1>{{store.product.name}}</h1>
<h2>${{store.product.price}}</h2>
<p>{{store.product.description}}</p>
</div>
</body>
</html>

我的 app.js(为了调试而剥离了闭包)。

var app = angular.module('gemStore', []);

app.controller("StoreController", function() {
this.product = gem;
});

var gem = {
name: 'Dodecahedron',
price: 2.95,
description: '. . .'
};

在app.js中,如果我改变

app.controller("StoreController", function() {
this.product = gem;
});

app.controller("StoreController", () => {
this.product = gem;
});

我的页面不再显示 gem 信息(只有空白和美元符号保留)。

有人能解释一下为什么会发生这种情况吗?

AngularJS版本:v1.5.6
Opera版本:37.0.2178.54

最佳答案

如果您需要this上下文,则不应使用箭头函数。

在此处了解更多信息(13.2):http://exploringjs.com/es6/ch_arrow-functions.html

关于javascript - 奇怪的 AngularJS 初学者行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com