2017-07-17 44 views
0

嗨所有我已經檢查瞭解我的問題的解決方案,但沒有解決我的問題。即使ng模型存在於angularjs中,ng-change也不起作用

HTML5代碼:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body ng-app="myApp"> 
     <div id="div1" ng-controller = "myCont"> 
     <input id="txt1" type="text" ng-model="a" ng-change="updateC()"> 
     <input id="txt2" type="text" ng-model="b"> 
     <div>a {{a}}</div> 
     <div>s {{s}}</div> 
     <div>c {{c}}</div> 
     <script src="angular.js"></script> 
     <script src="angular_try.js"></script> 
    </body> 
</html> 

下面是我的angularjs代碼:

var myApp= angular.module("myApp",[]) 

myApp.controller("myCont",["$scope","$rootScope",function($scope,$rootScope) 
{ 
    $scope.s=0; 
    $scope.a =0; 
    $scope.b=0; 
    function updateC() 
    { 
     $scope.c = $scope.a+20; 
    } 


    $scope.$watch("c",function(newvalue,oldvalue){ 
     if(newvalue!=oldvalue) 
     { 
      $scope.c =$scope.c 
     } 
    }) 
}]) 

任何人都可以請讓我知道什麼是錯在我的代碼,因爲我用用NG-模型NG-變化並且也有相同的監視表達,但代碼不運行;難以運行,沒有錯誤。

回答

1

只要做

$scope.updateC = function ({ 
    $scope.c = $scope.a+20; 
} 
0

附加功能到你的範圍:

$scope.updateC = function() { 
    $scope.c = $scope.a+20; 
} 

此外,爲避免與原型繼承的問題,你可能要創建一個對象並綁定到對象的屬性,而不是直接綁定到的範圍:

控制器:

$scope.data = { 
    a: 0, 
    // etc 
} 

查看:

ng-model="data.a" 

或者您可以切換到controller as語法。詳情請查看this link