Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 AngularJS-$编译一个以对象作为属性参数的指令_Javascript_Angularjs_Angularjs Directive_Directive - Fatal编程技术网

Javascript AngularJS-$编译一个以对象作为属性参数的指令

Javascript AngularJS-$编译一个以对象作为属性参数的指令,javascript,angularjs,angularjs-directive,directive,Javascript,Angularjs,Angularjs Directive,Directive,当我使用$compile创建和绑定指令时,如何将变量添加为属性?变量是一个对象 var data = { name: 'Fred' }; var dirCode = '<my-directive data-record="data"></my-directive>'; var el = $compile(dirCode)($scope); $element.append(el); 我已经试过了 `var dirCode = '<my-directi

当我使用
$compile
创建和绑定指令时,如何将变量添加为属性?变量是一个对象

var data = {
    name: 'Fred'
};

var dirCode = '<my-directive data-record="data"></my-directive>';

var el = $compile(dirCode)($scope);

$element.append(el);
我已经试过了

 `var dirCode = '<my-directive data-record="' + data + '"></my-directive>';` 
`var dirCode='''';`

也可以这样做。

非常简单,只需创建新的作用域并在其上设置数据属性即可

angular.module('app',[]);
有棱角的
.module('应用程序')
.directive('myDirective',函数(){
返回{
限制:'E',
模板:'record={{record}}',
范围:{
记录:'='
},
链接:功能(范围){
console.log(scope.record);
}
};
});
有棱角的
.module('应用程序')
.directive('example',function($compile){
返回{
限制:'E',
链接:功能(范围、元素){
风险值数据={
姓名:“弗雷德”
};
var newScope=范围$new(真);
newScope.data=数据;
var dirCode='';
var el=$compile(dirCode)(新闻范围);
元素。追加(el);
}
};
});


var data={}
需要附加到控制器作用域以获得双向绑定。如果你不在乎双向绑定的话,一个更黑客的方法就是做
,谢谢你,这最终让你赚了一分钱。
scope
参数是父范围,而不是注入指令的范围。
 `var dirCode = '<my-directive data-record="' + data + '"></my-directive>';`