Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Angularjs 将数据从同一对象绑定到同一个多指令_Angularjs_Angular Directive - Fatal编程技术网

Angularjs 将数据从同一对象绑定到同一个多指令

Angularjs 将数据从同一对象绑定到同一个多指令,angularjs,angular-directive,Angularjs,Angular Directive,您好,我对如何将同一指令与来自同一对象的不同数据绑定在一起有点困惑 (函数(){ "严格使用",; 角度.module('app',[]) .controller('appController',appController) .指令('userForm',userForm); /**@注射的*/ 函数appController($http){ 让vm=这个; vm.user={ 用户名:“测试用户”, 电邮:'test@gmail.com', 编号:'1456', 地址:zyz, 声明:“ab

您好,我对如何将同一指令与来自同一对象的不同数据绑定在一起有点困惑

(函数(){
"严格使用",;
角度.module('app',[])
.controller('appController',appController)
.指令('userForm',userForm);
/**@注射的*/
函数appController($http){
让vm=这个;
vm.user={
用户名:“测试用户”,
电邮:'test@gmail.com',
编号:'1456',
地址:zyz,
声明:“abcd”,
城市:“xyz”
};
}
函数userForm(){
返回{
限制:'E',
范围:{
数据:'='
},
templateUrl:'public/app/form.directive.html',
控制器:“appController”,
链接:函数(范围、属性、元素){
}
}
}
})();
{{headerLabel}
{{label1.label1}}
{{label2}}
{{label3}}

我想知道您为什么要这样做,将指令用于两个不同的目的。我建议为它创建两个不同的指令。如果您仍然需要它,您可以在指令函数中有一个逻辑内部链接来执行不同的逻辑。它不是很优雅,但你要求的也不是(imho)

{{headerLabel}
{{label1.label1}}
{{label2}}
{{label3}}

我之所以想这样做,是因为实际上这只是一个演示,我有一个对象,其中包含答案描述、答案图像、问题描述和带有预览和编辑器的问题文本,所以我不想为此创建两个目录,相反,我可以使用一个指令进行显示,然后绑定到模型进行编辑。
(function () {
    'use strict';
    angular.module('app', [])
        .controller('appController', appController)
        .directive('userForm', userForm);
    /**@Injectable*/
    function appController($http) {
        let vm = this;
        vm.user = {
            userName: 'Test User',
            email: 'test@gmail.com',
            number: '1456',
            address: 'zyz',
            state: 'abcd',
            city: 'xyz'
        };
    }
    function userForm() {
        return {
            restrict: 'E',
            scope: {
                data:'=', 
                type:'@'
            },
            templateUrl: 'public/app/form.directive.html',
            controller: 'appController',
            link: function (scope, attr, element) {
                switch(scope.type){
                   case 'name_info':
                    //logic for name based info
                    break;
                   case 'address_info':
                    //logic for address based info
                    break;
                   default:



                }

            }
        }
    }
})();