这样写的好处是什么?
app.directive("drink", function () {
return {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>'
};
});
而不是:
app.directive("drink", {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>'
}};
这种语法在angular中随处可见。原因是什么?
编辑:来自https://thinkster.io/egghead/isolate-scope-eq
对于第一个示例,angular可以控制何时创建配置对象,因此可以选择合适的时间。它还允许以以下形式进行依赖注入:
app.directive("drink", ['drinkStoreService', function (drinkStoreService) {
return {
scope: {
flavor: "="
},
template: '<div>{{ flavor }}</div>',
link: function () {
// could use `drinkStoreService` here
}
};
}]);
而第二个示例没有上述任何特性。因此它的可用性大大降低。而且,因为对象文字将是"当场创建/执行",它甚至可能对程序流有害。
还请注意,通过返回一个函数,您还可以执行以下操作:
return function()
{
var privateVar = mysteriousDataSource(); //Without having this executed instantly
return {
scope: {
flavor: "=",
mysteriousData : privateVar
},
template: '<div>{{ flavor }}</div>'
};
}