Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使这个jQuery在AngularJS指令中使用?_Jquery_Angularjs - Fatal编程技术网

如何使这个jQuery在AngularJS指令中使用?

如何使这个jQuery在AngularJS指令中使用?,jquery,angularjs,Jquery,Angularjs,我想从angular使用以下jQuery: jQuery.prototype.stars = function() { return $(this).each(function() { var val = parseFloat($(this).html()); var size = Math.max(0, (Math.min(5, val))) * 16; var $span = $('<span />').width(size); $

我想从angular使用以下jQuery:

jQuery.prototype.stars = function() {
  return $(this).each(function() {
    var val = parseFloat($(this).html());      
    var size = Math.max(0, (Math.min(5, val))) * 16;
    var $span = $('<span />').width(size);
    $(this).html($span);
});
}

$(function() {
    $('span.stars').stars();
});

但是我不知道如何重写函数stars(),jQuery已经用(jQuery.prototype.stars)进行了扩展。非常感谢你的帮助

jQuery函数所做的一切似乎都是用一个
标记替换数字,标记的宽度基于标记中包含的数字。我建议将函数作为指令的一部分,并为angular重构它,类似于:

link: function($scope, elem, attrs) {
 function starify() {
    var val = parseFloat(angular.element(elem).html());
    var size = Math.max(0, (Math.min(5, val))) * 16;
    var span = angular.element('<span/>').css('width', size+'px');
    angular.element(elem).html(span[0].outerHTML);
 }
 starify();
}
链接:函数($scope、elem、attrs){
函数starify(){
var val=parseFloat(angular.element(elem.html());
变量大小=数学最大值(0,(数学最小值(5,val))*16;
var span=angular.element(“”).css('width',size+'px');
angular.element(elem).html(span[0].outerHTML);
}
淀粉化();
}
这是使用angular的基本元素提供程序(jQlite)。无需等待文档准备就绪


下面是一个超级简单的plunker:

看起来jQuery函数所做的只是用一个
标记替换数字,标记的宽度基于标记中包含的数字。我建议将函数作为指令的一部分,并为angular重构它,类似于:

link: function($scope, elem, attrs) {
 function starify() {
    var val = parseFloat(angular.element(elem).html());
    var size = Math.max(0, (Math.min(5, val))) * 16;
    var span = angular.element('<span/>').css('width', size+'px');
    angular.element(elem).html(span[0].outerHTML);
 }
 starify();
}
链接:函数($scope、elem、attrs){
函数starify(){
var val=parseFloat(angular.element(elem.html());
变量大小=数学最大值(0,(数学最小值(5,val))*16;
var span=angular.element(“”).css('width',size+'px');
angular.element(elem).html(span[0].outerHTML);
}
淀粉化();
}
这是使用angular的基本元素提供程序(jQlite)。无需等待文档准备就绪

下面是一个超级简单的扑救: