2017-02-22 57 views
0

这是我的脚本中,我包括在我的html代码 -如何从角度传递动态值jQuery脚本

<div class="progress-bar"></div> 
<script type="text/javascript"> 

    $('.progress-bar').gradientProgressBar({ 
     value: $(this).attr('$scope.moodvalue'), 
     size: 400, 
     fill: { 
      gradient: ["red", "green", "yellow"] 
     } 
    }); 
</script> 
</div> 

,我从角码传递$ scope.moodevalue。 但是,当我得到$ scope.moodvalue = 0.21,但更改没有出现在我的进度条上。

请帮助我,如何将动态值传递给脚本。

在此先感谢。

+2

这可能有所帮助:http://stackoverflow.com/questions/31604547/how-to-assign-angularjs-value-to-jquery –

+0

你会分享HTML。 –

+0

<脚本类型= “文本/ JavaScript的”> $( '的进度条。')gradientProgressBar({ 值:0.75, 尺寸:400, 填充:{ 梯度:[ “红”, “green”,“yellow”] } }); 这只有我包括在我的html页面,但这里的脚本值是这样的0.75我想通过动态值,我在我的角码设置为$ scope.moodvalue。但如果我像这里一样通过手动操作0.75它在状态栏中显示颜色变化,但是当我传递不断变化的$ scope.moodvalue时,它不会反映出来。 – Piyu

回答

0

使用angular.element()。scope()来获取值。 和ng-change更新值。 参考这个。

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Document</title> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
    <script> 
 
     function test() { 
 
      var scope = angular.element($("#testInput")).scope(); 
 
      $(".test")[0].innerText = scope.test; 
 
     } 
 
     
 
     $(document).ready(function() { 
 
      test();    
 
     }); 
 
     
 
    </script> 
 
    <script> 
 
    var app = angular.module('app', []); 
 
    
 
    app.controller('myCtrl', function($scope) { 
 
     $scope.test = '111'; 
 

 
     $scope.change = function() { 
 
      test(); 
 
     } 
 
    }); 
 
    </script> 
 
</head> 
 
<body> 
 
    <div class="test"></div> 
 
    <div ng-app="app"> 
 
    <div ng-controller="myCtrl"> 
 
     <input id="testInput" type="text" ng-change="change()" ng-model="test" /> 
 
    </div> 
 
    </div>  
 
</body> 
 
</html>

+0

Pengyy-谢谢你为我工作。 但是,一种解决方案也可以工作 - 如果我将我的脚本移动到角度代码,我将获得动态$ scope.moodvalue。 – Piyu

+0

@Piyu你可以构建一个指令,把你的进程条放入它,并通过指令的参数将$ scope.moodvalue传入指令。 – Pengyy

0

试试这个:

HTML:

<input type="test" ng-model="testValue"/> 

的javascript:

$('.progress-bar').gradientProgressBar({ 
    value: $scope.testValue, 
    size: 400, 
    fill: { 
     gradient: ["red", "green", "yellow"] 
    } 

});