在我的自定义指令中我获取属性值,在我的情况下它可能是数字或数组,但在我的指示我得到一个字符串数组(例如:" [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);
});
}
};
}
答案 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);
}
}
});