Javascript 如何创建指令控制器?
我的问题是,我找不到任何有关这方面的官方文件 暗指Javascript 如何创建指令控制器?,javascript,angularjs,Javascript,Angularjs,我的问题是,我找不到任何有关这方面的官方文件 暗指 控制器:['$scope',函数($scope){ 为什么我不能在这里省略$s,就像在链接函数(scope,elem,attrs){?控制器:['scope',函数(scope){将导致错误“错误:[$injector:unpr]未知提供程序:scopeProvider在函数($scope)中,$scope”是依赖项“$scope”的别名。可以在那里重命名它 JS代码的相关部分: controller: ['$scope', fu
控制器:['$scope',函数($scope){
为什么我不能在这里省略
$
s,就像在链接函数(scope,elem,attrs){
?控制器:['scope',函数(scope){
将导致错误“错误:[$injector:unpr]未知提供程序:scopeProvider在函数($scope)中,$scope
”
是依赖项“$scope”的别名。
可以在那里重命名它
JS代码的相关部分:
controller: ['$scope', function(scope) { // "scope" as an alias
var panes = scope.panes = [];
scope.select = function(pane) { // $scope renamed
angular.forEach(panes, function(pane) {
pane.selected = false;
});
pane.selected = true;
};
this.addPane = function(pane) {
if (panes.length === 0) {
scope.select(pane); // $scope renamed
}
panes.push(pane);
};
}],
函数($scope)
中的$scope
是依赖项'$scope'
的别名。您可以在那里重命名它
JS代码的相关部分:
controller: ['$scope', function(scope) { // "scope" as an alias
var panes = scope.panes = [];
scope.select = function(pane) { // $scope renamed
angular.forEach(panes, function(pane) {
pane.selected = false;
});
pane.selected = true;
};
this.addPane = function(pane) {
if (panes.length === 0) {
scope.select(pane); // $scope renamed
}
panes.push(pane);
};
}],
指令的link函数只是一个普通的JavaScript函数,它的类型签名为scope,element,attributes对象,按该顺序排列。如果要翻转参数并声明我们的link函数,如下所示:
link: function(attr, elem, scope) {
console.log(scope)
}
第一个参数(现在称为attr)仍然是scope对象
与链接函数不同,控制器函数由Angular的喷射系统调用
“$scope”
中的“$”表示正在将作用域值注入当前上下文。但是,并非所有对作用域的引用都基于依赖项注入。例如,在$watch、link和cloning
函数中(不是详尽的列表),范围始终作为位置参数传递,而不管其名称如何
你可以参考以下文章:
指令的链接函数只是一个普通的JavaScript函数,它的类型签名为范围,元素,属性对象,按顺序排列。如果要翻转参数并声明我们的链接函数,如下所示:
link: function(attr, elem, scope) {
console.log(scope)
}
第一个参数(现在称为attr)仍然是scope对象
与链接函数不同,控制器函数由Angular的喷射系统调用
“$scope”
中的“$”表示正在将作用域值注入当前上下文。但是,并非所有对作用域的引用都基于依赖项注入。例如,在$watch、link和cloning
函数中(不是详尽的列表),范围始终作为位置参数传递,而不管其名称如何
你可以参考以下文章:
- 有关所谓的
的官方文档可在中找到指令定义对象
可注入局部变量指令控制器构造函数
、$scope
、$element
和$attrs
。这些都是注入的。因此,它们的准确拼写很重要$transclude
- 通过
创建controller:function($scope){}
与创建类似于directive控制器
controller:['$scope',function(scope){}]
- 有关所谓的
的官方文档可在中找到指令定义对象
可注入局部变量指令控制器构造函数
、$scope
、$element
和$attrs
。这些都是注入的。因此,它们的准确拼写很重要$transclude
- 通过
创建controller:function($scope){}
与创建类似于directive控制器
controller:['$scope',function(scope){}]
函数($scope)
中的$scope
是一个别名。您可以将其重命名为函数(scope)
。不,我不能。查看更新的回答不确定您是否在代码块中将$scope
重命名为范围
。请使用下面的工作代码检查我的答案。函数($scope)中的$scope
是一个别名。您可以将其重命名为函数(范围)
。不可以。请参阅更新的回答。不确定您是否在代码块中将$scope
重命名为scope
。请使用下面的工作代码检查我的回答。