Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么向DDO工厂函数添加参数会破坏应用程序?_Javascript_Angularjs_Parameters - Fatal编程技术网

Javascript 为什么向DDO工厂函数添加参数会破坏应用程序?

Javascript 为什么向DDO工厂函数添加参数会破坏应用程序?,javascript,angularjs,parameters,Javascript,Angularjs,Parameters,我的印象是正确的,我的谷歌搜索显示Javascript函数可以接受任意数量的参数,而不管其意图是什么 奇怪的是,我的指令在这里起作用 ... module.directive('aye', function(){ return { restrict: 'AE', replace: 'true', template: "<p> Hi </p>"

我的印象是正确的,我的谷歌搜索显示Javascript函数可以接受任意数量的参数,而不管其意图是什么

奇怪的是,我的指令在这里起作用

...
module.directive('aye', function(){
            return {
                restrict: 'AE',
                replace: 'true',
                template: "<p> Hi </p>"
            };
    });
    </script>
</head>

<body ng-controller="myController">
    <div>
        {{ airportsArray() }}
    </div>
    <div aye></div>
</body>
</html>
module.directive('aye', function(injectables){
            return {
                restrict: 'AE',
                replace: 'true',
                template: "<p> Hi </p>"
            };
    });
    </script>
</head>

<body ng-controller="myController">
    <div>
        {{ airportsArray() }}
    </div>
    <div aye></div>
</body>
</html>

有人能解释一下吗?

通过依赖项注入,角度传递这些值。并根据参数的名称确定要注入的内容。当您开始缩小时,它可能会更复杂。在上面的示例中,您还没有识别名为injectables的组件服务/工厂/值/等,因此它向您显示的错误是它找不到injectables

//Create something that can be injected:
module.service('fooService', function($http){
  /* ... some functions here ... */
});

//Inject this defined piece into your directive:
module.directive('myDirective', function(fooService){
});

当angular需要创建myDirective的实例时,它将看到它需要参数fooService,因此它将进入其依赖项解析器找到它,然后将它作为参数传递给您的指令。

在文档中,它说的是injectables,它指的是您的injectables,而不是injectables这个词。如果您在应用程序中定义了一个名为injectables的服务,那么您的代码将正常工作。这有意义吗?没有像注射剂那样的服务。文档只是强调了我们可以在指令定义函数中传递依赖项。您可以提供一个好的可注入项定义的示例吗?可注入项只是angular的依赖项注入机制可以注入的参数的占位符。话虽如此,我会在答覆中举出一个例子
//Create something that can be injected:
module.service('fooService', function($http){
  /* ... some functions here ... */
});

//Inject this defined piece into your directive:
module.directive('myDirective', function(fooService){
});