2017-02-22 29 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"] 
    } 

});