必须这样写有什么好处:
app.directive("drink", function () {
return {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>'
};
});
而不是:
app.directive("drink", {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>'
}};
这种语法在 Angular 中被广泛使用。这是什么原因?
最佳答案
对于第一个示例,angular 可以控制何时创建配置对象,因此可以选择合适的时间。它还允许以以下形式进行依赖注入(inject):
app.directive("drink", ['drinkStoreService', function (drinkStoreService) {
return {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>',
link: function () {
// could use `drinkStoreService` here
}
};
}]);
虽然您的第二个示例没有上述任何功能。因此可用性要差得多。此外,由于对象文字将“当场创建/执行”,它甚至可能对程序流有害。
关于javascript - 为什么 Angular 使用闭包来定义指令和其他核心语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32734182/