Javascript AngularJS控制器变量未传递给子指令
我有以下代码。我了解到指令可以从其父作用域继承对象和变量。我有一个带有child指令的控制器,但我似乎无法在指令中获取我的Javascript AngularJS控制器变量未传递给子指令,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我有以下代码。我了解到指令可以从其父作用域继承对象和变量。我有一个带有child指令的控制器,但我似乎无法在指令中获取我的$scope.title 为什么会这样 var mod=angular.module('myApp',[]); mod.controller('myControl',controlFunc).directive('myDirec',direcFunc); 函数controlFunc($scope){ $scope.title=“约翰·史密斯”; } 函数direcFunc(
$scope.title
为什么会这样
var mod=angular.module('myApp',[]);
mod.controller('myControl',controlFunc).directive('myDirec',direcFunc);
函数controlFunc($scope){
$scope.title=“约翰·史密斯”;
}
函数direcFunc(){
返回{
限制:'E',
模板:“”+$scope.title+“”
};
}
您试图访问指令中的作用域的方式,必须有get console错误$scope未定义
,因为指令中不能直接使用$scope
不能使用$scope
变量直接访问HTML上的变量。您应该使用Angle指令进行绑定,比如ngbind
/{{}}
(插值指令)在这种情况下会有所帮助
您的指令模板应该如下所示
function direcFunc(){
return {
restrict: 'E',
scope: false, //by default false, means will not create a new scope
//template: '<h1>{{title}}</h1>', //alternative
template: '<h1 ng-bind="title"></h1>'
};
}
你希望在这辆车里看到什么?我看到了“John Smith”。所以,如果我专门使用
ng bind
,指令只继承控制器内容?还有什么方法可以让指令立即继承控制器的所有内容吗?我已经使用了链接功能来控制台。记录指令的范围,它与控制器的范围相同,但是如果它的范围相同,为什么我不能从控制器使用$scope.title
ng bind
用于在DOM上打印控制器范围绑定。。一定要看最新的。谢谢:)@GEspinha您不能注入对指令函数的依赖性。。你所做的在语法上是错误的。。你需要通过阅读这个@GEspinha来真正理清你的基础知识如果你通过这个方法理清了,那么你就可以接受答案了谢谢:)
function direcFunc(){
return {
restrict: 'E',
scope: false, //by default false, means will not create a new scope
//template: '<h1>{{title}}</h1>', //alternative
template: '<h1 ng-bind="title"></h1>'
};
}
function direcFunc(){
return {
restrict: 'E',
scope: false, //by default false, means will not create a new scope
//template: '<h1>{{title}}</h1>', //alternative
template: '<h1 ng-bind="title"></h1>',
link: function(scope, element, attrs){
console.log("Below scope will be same as that of controller");
console.log(scope);
}
};
}