Javascript 角度指令don';来自控制器的t工作功能
伙计们! 我从动态数据构建表单。将来我需要编辑这个表格,把数据放到表格中并提交。我通过以下方式构建表单:Javascript 角度指令don';来自控制器的t工作功能,javascript,angularjs,forms,Javascript,Angularjs,Forms,伙计们! 我从动态数据构建表单。将来我需要编辑这个表格,把数据放到表格中并提交。我通过以下方式构建表单: <div> <form name="pageForm"> <div> <div class="form-group" ng-repeat="item in formStructure.form_data" dynamic="item" templates="templates"></div> </div> </fo
<div>
<form name="pageForm">
<div>
<div class="form-group" ng-repeat="item in formStructure.form_data"
dynamic="item" templates="templates"></div>
</div>
</form>
</div>
构建表单后,当我使用ng单击某些元素时,单击“SomeFunctionInControl()”无任何提示
此外,在我的html中,我无法使用ng模型访问表单数据
我找到了解决方案:
我修改了指令:
function dynamic ($compile) {
return {
restrict: 'A',
replace: true,
scope: { dynamic: '=dynamic',
templates: '=templates',
eventlstn: '&'
},
link: function postLink(scope, ele, attrs) {
scope.$watch( 'dynamic' , function(html){
scope.item = html;
ele.html(scope.templates[html.type]);
$compile(ele.contents())(scope);
});
}
};
}
function dynamic ($compile) {
return {
restrict: 'AE',
replace: true,
scope: false,
link: function postLink(scope, ele, attrs) {
scope.$watch( 'dynamic' , function(){
ele.html(scope.templates[scope.item.type]);
$compile(ele.contents())(scope);
});
}
};
}
使用范围:false
指令与控制器使用相同的范围。
现在它开始工作了。谢谢你,格伦迪
将来我打算把这个解决方案(带有扩展功能的拖放表单生成器)公之于众,希望它能帮助别人 您可以提供JSFIDLE或plunkr吗?以下是plunkr:您可以在post和plunkr中提供最新版本的代码吗,现在不一样了?您在plunkr中的主要问题是:您使用同一个控制器两次:在指令中-
控制器:'formReadyController',
和在html中-ng controller=“formReadyController”
尝试查看修复
function dynamic ($compile) {
return {
restrict: 'AE',
replace: true,
scope: false,
link: function postLink(scope, ele, attrs) {
scope.$watch( 'dynamic' , function(){
ele.html(scope.templates[scope.item.type]);
$compile(ele.contents())(scope);
});
}
};
}