自定义指令属性

时间:2016-07-21 20:26:49

标签: angularjs angularjs-directive

在我的自定义指令中我获取属性值,在我的情况下它可能是数字或数组,但在我的指示我得到一个字符串数组(例如:" [1,2]"。

如何让属性中的数组不是字符串?

视图:

<div my-directive to=[1,2]

指令:

angular.module('myApp')
    .directive('myDirective',
        [
            '$http', '$q','$uibModal',
            dir
        ]);


function dir($http, $q, UserService, $uibModal) {
    return {
        restrict: 'A',
        link: function($scope, element, attrs, controller) {
            element.on( 'click', function( evt ){


                       console.log(attrs.to);

            });
        }
    };
}

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

在视图上(初始化指令&amp;设置指令参数)

<div ng-app='demo'>
    <demo-directive to-val='[1,2,3,4,5]'></demo-directive>
</div>

指令

var demo = angular.module('demo', []);
demo.directive('demoDirective', function($parse) {
    return {
        restrict: 'E',
        template: '<div ng-repeat="val in toVal">{{val}}</div>',
        link: function (scope, element, attrs, controller) {
            // parse the attribute array to a scope params
            scope.toVal = JSON.parse(attrs.toVal);
        }
    }
});