Helllo,
我想将一个值从控制器传递给angularjs中的指令。我将如何传递该值并在指令中显示它。
在Html部分
在控制器部分 我的控制器名称是docontroller。
$ scope.name =“world”;
angular.element(document.querySelector( '#carControls'))。追加($编译( mydirectivename为标签 )($ rootScope));
我必须传递我的变量以及控制器,我可以在我的指令中直接访问 它是我在控制器中使用的指令并附加到html 在我的指令部分
myApp.directive('Controls', function ($compile, $rootScope, $timeout, $window) {
var linker = function (scope, element, attrs) {
alertr('name' + scope.name);
$timeout(function () {
scope.controlClass = 'fa fa-pause';
var ControlsTemplate =
'<button class="btn btn-default btn-sm margin-r-10 text-center"><i class="fa fa-backward"></i></button>'+
'<button ng-click="doPlayOrPause()" class="btn btn-default btn-sm margin-r-10 text-center"><i id="play-pause" ng-class="controlClass"></i></button>'+
'<button class="btn btn-default btn-sm margin-r-10 text-center"><i class="fa fa-forward"></i></button>'+
'<button ng-click="doStop()" class="btn btn-default btn-sm margin-r-10 text-center"><i class="fa fa-stop"></i></button>';
element.html(ControlsTemplate);
$compile(element.contents())(scope);
});
};
return {
restrict: "E",
replace: true,
link: linker
};
});
作为回报 我通过了控制器:'docontroller,我无法在范围内找到我的名字'
答案 0 :(得分:3)
在您的控制器中
$scope.yourValue="myValue";
在你的指令中
app.directive('myDirective',function(){
return {
restrict: 'E',
scope: {
yourValue: '='
},
})
在你的dom中
<my-directive your-value="yourValue"></my-directive>
答案 1 :(得分:0)
如果您没有使用隔离范围,则可以访问父控制器$ scope。
你也可以使用$ rootScope。
喜欢
控制器:
app.controller("demoCtrl",function($scope,$rootScope){
$rootScope.xyz = "test";
// call your directive , value will be accessible in directive
})
指令:
app.directive(...,function($rootScope){
return {
// extra code omitted.
// get your value here like
// var abc = $rootScope.xyz;
}
)