Javascript Angualar Dynamic ng型号名称内置手风琴

Javascript Angualar Dynamic ng型号名称内置手风琴,javascript,angularjs,accordion,Javascript,Angularjs,Accordion,我希望在下面的场景中有一个动态的ng模型名称。在选择部门框时,我将绘制表格 它与, ng model=“department.name”,但由于我们有一些其他内部资料,这会导致一些其他问题。我希望名称为ng model={{department.name}},这样名称本身将是动态的 <div ng-app > <ul ng-repeat="department in selectedDepartments"> <li>

我希望在下面的场景中有一个动态的
ng模型
名称。在选择部门框时,我将绘制表格

它与,
ng model=“department.name”
,但由于我们有一些其他内部资料,这会导致一些其他问题。我希望名称为
ng model={{department.name}}
,这样名称本身将是动态的

<div ng-app >
    <ul ng-repeat="department in selectedDepartments">
        <li>
            <div>{{department.id}}</div>
            <input type="text" ng-model={{department.name}}" >
        </li>
    </ul>
</div>
我尝试创建一个指令,如下所示

this.app.directive('dynamicModel', ['$compile', '$parse', function ($compile, $parse) {
    return {
        restrict: 'A',
        terminal: true,
        priority: 100000,
        link: function (scope, elem) {
            var name = $parse(elem.attr('dynamic-model'))(scope);
            elem.removeAttr('dynamic-model');
            elem.attr('ng-model', name);
            $compile(elem)(scope);
        }
    };
}]);
但是,我仍然无法使用as
动态模型={{department.name}


谢谢

我认为不需要定制指令。您可以通过在ng模型中使用javascript表达式来使用动态模型。这里有一个例子

在你的情况下,我认为你正在寻找这样的东西

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.selectedDepartments={};
$scope.departments={
“审核”:[{id:0,名称:“auditDept0”},
{id:0,名称:“auditDept1”}],
“hr”:[{id:0,名称:“hrDept0”},
{id:0,名称:“hrDept1”}],
“财务”:[{id:0,名称:“financeDept0”},
{id:0,名称:“financeDept1”}]
};
$scope.selectDepartment=功能(名称){
如果(名称=“hr”){
$scope.selectedDepartments=$scope.departments.hr;
}else if(名称=“财务”){
$scope.selectedDepartments=$scope.departments.finance;
}
}
$scope.selectDepartment('hr');
});

  • {{department.id} {{部门[名称]}
this.app.directive('dynamicModel', ['$compile', '$parse', function ($compile, $parse) {
    return {
        restrict: 'A',
        terminal: true,
        priority: 100000,
        link: function (scope, elem) {
            var name = $parse(elem.attr('dynamic-model'))(scope);
            elem.removeAttr('dynamic-model');
            elem.attr('ng-model', name);
            $compile(elem)(scope);
        }
    };
}]);