加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 使用指令添加ngModel进行输入

发布时间:2020-12-17 09:29:55 所属栏目:安全 来源:网络整理
导读:我有一个输入元素,我想使用一个自定义指令绑定一个ngModel和一个ngClass,但我有一些麻烦. 我拥有的: input type="text" myDirective="PropertyFromScope" / 我想要的结果是: input type="text" ng-model="PropertyFromScope" ng-class="{'class' : MethodF
我有一个输入元素,我想使用一个自定义指令绑定一个ngModel和一个ngClass,但我有一些麻烦.

我拥有的:

<input type="text" myDirective="PropertyFromScope" />

我想要的结果是:

<input type="text" ng-model="PropertyFromScope" ng-class="{'class' : MethodFromScope}" />

我试图避免使用模板,因为我希望指令能够处理任何输入标签.

这是我到目前为止

angular.module('customDirectives',[])
.directive('myDirective',function () {
    var linker = function (scope,element,attrs) {
        attrs.$set('ngModel',attrs.myDirective);
        attrs.$set('ngClass','{'class' : MethodFromScope}');
    }
    return {
        restrict: 'A',link: linker
    }
});

这是一个JSFiddle:http://jsfiddle.net/Q8QJJ/

你试图完成这个吗?

很简单的解决方案:

myApp.directive('myDirective',function ($compile) {
    return {
        restrict: 'A',compile: function(element,attrs) {
            element.attr('ng-model',attrs.myDirective);
            element.removeAttr("my-directive");
            element.attr('ng-class','{'class' : testFunction()}');
            return {
               pre: function preLink(scope,iElement,iAttrs,controller) { },post: function postLink(scope,controller) { 
                 $compile(iElement)(scope);
               }
            }
        }
    }
});

这是一个小提琴http://jsfiddle.net/V9e9M/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读