我正在尝试使用以下代码在ng-repeat中创建动态指令:
app.directive('element', function($compile) {
return {
restrict: 'E',
link : function (scope,element,attr)
{
attr.$observe('type', function (val) {
scope.type = val;
});
attr.$observe('value', function (val) {
scope.value = val;
});
attr.$observe('name', function (val) {
scope.name = val;
});
scope.$watch(function()
{
formFieldTemplate= $('<a>').attr('m',scope.name).attr('class',scope.type).attr('value',scope.value);
$compile(formFieldTemplate)(scope);
$(element).replaceWith(formFieldTemplate);
})
}
}
});
supa.directive('Textbox', function($compile) {
return {
restrict: 'C',
link : function (scope,element,attr)
{
formFieldTemplate= $('<input>').attr('type','text').attr("ng-model","mm."+attr.m);
$compile(formFieldTemplate)(scope);
var formListElement = $(element);
formListElement.replaceWith(formFieldTemplate);
}
}
})
此代码显示正确的字段。
但是当我把ng-model放在textbox指令中时,我得到一个错误
Error: 10 $digest() iterations reached. Aborting!
如果我删除文本ng-model,一切正常。
包装元素标签的ng-repeat返回我将使用的指令。
我有更多的指令,如textbox,textarea,checkbok等。