首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将数组传递给角指令

不能将数组传递给角指令
EN

Stack Overflow用户
提问于 2016-02-05 15:04:24
回答 2查看 1.4K关注 0票数 0

无法传递数组输入掩码插件的角度。也许有人能帮我解决这个问题。

代码语言:javascript
复制
angular.module('myproject.directives').   
directive('inputMask', function() {
    return {
        restrict: 'A',
        scope: {
            inputMask: '@'
        },
        link: function(scope, el, attrs) {
            $(el).inputmask(attrs.inputMask);
        }
    };
});

<input type="text" input-mask="{'mask': '9{4} 9{4} 9{4} 9{4}[9]', 'autoUnmask': 'true'}" />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-05 15:18:30

属性值将返回一个字符串,而不是传递给插件所需的对象。

您可以切换引号,以便字符串是有效的JSON,然后将json解析为对象

代码语言:javascript
复制
<input type="text" input-mask='{"mask": "9{4} 9{4} 9{4} 9{4}[9]", "autoUnmask": "true"}' />

JS

代码语言:javascript
复制
.directive('inputMask', function() {
    return {
        restrict: 'A',
        scope: {
            inputMask: '@'
        },
        link: function(scope, el, attrs) {
          var mask =JSON.parse(attrs.inputMask);
           $(el).inputmask(mask);
        }
    };
})

但实际上,这样做要简单得多,不将字符串放在html中,而是将对象引用从控制器传递到孤立的作用域。

票数 0
EN

Stack Overflow用户

发布于 2016-02-05 15:31:36

只需使用scope.$eval方法执行inputMask属性中的表达式:

代码语言:javascript
复制
angular.module('myproject.directives')  
.directive('inputMask', function() {
    return {
        restrict: 'A',
        scope: {
            inputMask: '@'
        },
        link: function(scope, el, attrs) {
            $(el).inputmask(scope.$eval(attrs.inputMask));
        }
    };
});

<input type="text" input-mask="{'mask': '9{4} 9{4} 9{4} 9{4}[9]', 'autoUnmask': 'true'}" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35227271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档