【发布时间】:2014-10-26 10:08:33
【问题描述】:
到目前为止,我是一名经验丰富的 Java 开发人员,我喜欢 Java 使用类型、签名、方法等的方式。它使所有内容都易于理解、易于理解和符合逻辑。
现在我正在尝试用 Javascript 开发一些东西。我正在尝试学习 Angular JS。但是,我发现很难理解这段代码是如何开发的。
查看代码at this tutorial 关于ng-repeat。我将发布代码示例;
app.directive('lkRepeat', function(){
return {
transclude : 'element',
compile : function(element, attr, linker){
return function($scope, $element, $attr){
var myLoop = $attr.lkRepeat,
match = myLoop.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/),
indexString = match[1],
collectionString = match[2],
parent = $element.parent(),
elements = [];
// $watchCollection is called everytime the collection is modified
$scope.$watchCollection(collectionString, function(collection){
var i, block, childScope;
// check if elements have already been rendered
if(elements.length > 0){
// if so remove them from DOM, and destroy their scope
for (i = 0; i < elements.length; i++) {
elements[i].el.remove();
elements[i].scope.$destroy();
};
elements = [];
}
我的问题是:你如何阅读这样的代码?调用函数时,方法签名在哪里?此外,当返回带有$scope、$element、$attr 等参数的function 值时,这些只是将要传递的变量的占位符吗?如果是这样,那为什么他们有这么有趣的名字,为什么不去掉美元符号呢?
【问题讨论】:
-
在了解 javascript 本身的工作原理之前,您不应该真正深入了解 Angular - Angular 的文档及其工作流程假定对语言有很好的处理。
-
My question is: How can you read such code?不适合stackoverflow网络,可能是为了代码审查 -
@KostiaMololkin — 代码审查是针对“我已经编写了这段代码。它会更好吗?”性质的问题。绝对不适合这类问题。
标签: javascript angularjs function parameters