簡體   English   中英

AngularJS | Plnkr | 觀看表達

[英]AngularJS | Plnkr | Watch expression

我是angularjs的新手。 我試圖在plnkr中運行$ watch的示例代碼,但是,我無法觸發監視表達式。 我需要觸發摘要周期嗎?

<!DOCTYPE html>
<html>    
  <head>
    <script data-require="angular.js@1.2.0" 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>

這是一個Plunker鏈接https://plnkr.co/edit/nfkQ6p4nc6MRwThay8Hd?p=preview

這是解決方案:

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

你應該使用ng-model ,因為value - 不是angular指令。 使用ng-model時,angular會自動運行digest

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

順便說一句,在控制器中使用scope.watch是一種不好的做法。 最好在輸入和呼叫控制器功能上設置ng-change

所以這是一個更清潔的解決方案https://plnkr.co/edit/iVBWdYhvnfJszNIPteuh?p=preview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM