如何在Angular指令中使用动态范围名称?

时间:2015-07-17 10:28:26

标签: javascript angularjs

我正在尝试创建一个指令,允许我将作用域变量设置为作为数据属性传递的变量名。

我目前有以下内容:

<input create-user-dropdown ng-model="userValue" data-my-var="myVar" />

app.directive('createUserDropdown', function(){
    return {
        restrict: 'A',
        scope: {
           myVarNameHere: "="
        }
        link: function(scope, elem, attr){
            scope.$watch(attrs.ngModel, function (value) {
                $scope.myVarNameHere = value;
            });
        }
    };
});

如何使用通过data-my-var传递的变量名作为范围变量而不是当前命名为myVarNameHere的指令中的当前变量名?

2 个答案:

答案 0 :(得分:1)

试试这样:

<input create-user-dropdown ng-model="userValue" data-my-var="myVar" />

app.directive('createUserDropdown', function(){
    return {
        restrict: 'A',
        scope: {
           myVarNameHere: "=myVar"
        },
        link: function(scope, elem, attr){
            scope.$watch(attrs.ngModel, function (value) {
                scope.myVarNameHere = value;
            });
        }
    };
});

答案 1 :(得分:1)

正如我们在评论中发现的那样,您可以使用

等模板创建指令
TaskID | Task | EmployeeID

1      |aa    | 1,4

2      |ab    | 2,3

3      |ac    | 1,2

工作 plunkr