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