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

前端之家收集整理的这篇文章主要介绍了angularjs – 使用指令添加ngModel进行输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个输入元素,我想使用一个自定义指令绑定一个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/

猜你在找的Angularjs相关文章