Javascript 将对象从ng repeat传递到templateURL属性
我正在尝试使用指令构建动态控件Javascript 将对象从ng repeat传递到templateURL属性,javascript,angularjs,Javascript,Angularjs,我正在尝试使用指令构建动态控件 <div ng-repeat="k in m.Array1" style="padding-left:30px"> <div ng-repeat="l in k.Array2.Array3"> <div control-picker var1="l" var2="k.Array2.Array3"> </div>
<div ng-repeat="k in m.Array1" style="padding-left:30px">
<div ng-repeat="l in k.Array2.Array3">
<div control-picker var1="l" var2="k.Array2.Array3">
</div>
</div
</div>
我尝试了scope.var1.prop1的所有可能的方法,比如attr.var1.prop1,但是在本例中var1变成了一个字符串。如何实现它(我还需要将作用域发送到html)您无法在那里获得
scope
。对于动态模板,您需要使用controller
:
.directive('controlpicker', function () {
return {
template: '<ng-include src="getTemplateUrl()"/>',
scope: { var1: '=', var2: '=' },
controller: function($scope) {
$scope.getTemplateUrl = function (elem, attr) {
if ($scope.var1.prop1 == 'MC') {
return 'MultipleChoice.html';
} else {
return 'Default.html';
}
};
}
});
指令('controlpicker',函数(){
返回{
模板:“”,
作用域:{var1:'=',var2:'='},
控制器:功能($scope){
$scope.getTemplateUrl=函数(元素,属性){
如果($scope.var1.prop1=='MC'){
返回'MultipleChoice.html';
}否则{
返回'Default.html';
}
};
}
});
检查。
.directive('controlpicker', function () {
return {
template: '<ng-include src="getTemplateUrl()"/>',
scope: { var1: '=', var2: '=' },
controller: function($scope) {
$scope.getTemplateUrl = function (elem, attr) {
if ($scope.var1.prop1 == 'MC') {
return 'MultipleChoice.html';
} else {
return 'Default.html';
}
};
}
});