gpt4 book ai didi

angularjs - 使用指令将 ngModel 添加到输入

转载 作者:行者123 更新时间:2023-12-03 22:23:16 25 4
gpt4 key购买 nike

我有一个输入元素,我想使用自定义指令将 ngModel 和 ngClass 绑定(bind)到它,但我遇到了一些麻烦。

是)我有的:

<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, iElement, iAttrs, controller) {
$compile(iElement)(scope);
}
}
}
}
});

这是一个 fiddle http://jsfiddle.net/V9e9M/

关于angularjs - 使用指令将 ngModel 添加到输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17405790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com