2017-07-17 43 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