Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 角度指令don';来自控制器的t工作功能_Javascript_Angularjs_Forms - Fatal编程技术网

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);
            });
        }
    };
}