2016-09-05 7 views
3

私はangularjsを初めて使用しています。私はplnkrで$ watchのサンプルコードを実行しようとしていますが、私はウォッチ式をトリガすることはできません。ダイジェストサイクルを起動する必要がありますか?ここでAngularJS | Plnkr |ウォッチ式

<!DOCTYPE html> 
<html>  
    <head> 
    <script data-require="[email protected]" data-semver="1.3.8" src="https://code.angularjs.org/1.3.8/angular.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head>  
    <body ng-app="funny" ng-controller="funController"> 
    <input value="{{random.text}}" /> 
    <div>{{number}}</div> 
    </body>  
</html> 
<script type="text/javascript> 
    var fun = angular.module("funny",[]); 
    fun.controller("funController", function($scope) { 
     $scope.random = { text : "les c!" }; 
     $scope.number = Math.random(); 

     $scope.$watch("random.text", function() { 
     $scope.number = Math.random(); 
     }); 
    }); 
</script> 

ここhttps://plnkr.co/edit/nfkQ6p4nc6MRwThay8Hd?p=preview

答えて

1

Plunkerリンクであるソリューションです:

https://plnkr.co/edit/WpIS2YffE5NabayejJsZ?p=preview

値はので、あなたは、NG-モデルを使用する必要があります - 角度ディレクティブではありません。 ng-modelを使用すると、angleは自動的にdigestを実行します。

<input ng-model="random.text" /> 

Btwコントローラでは、scope.watchを使用することをお勧めします。 ng-changeを入力およびコールコントローラ機能に設定する方が良いでしょう。

ここにクリーナーソリューションがあります。https://plnkr.co/edit/iVBWdYhvnfJszNIPteuh?p=preview