即使在angularjs

时间:2017-07-17 16:39:50

标签: javascript angularjs html5

大家好我已经在网上检查过我的问题的解决方案,但没有解决我的问题。

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-change和ng-model,并且还有相同的监视表达式,但是代码没有;运行,艰难没有错误。

2 个答案:

答案 0 :(得分:1)

只做

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

答案 1 :(得分:0)

将功能附加到您的范围:

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

另外,为避免原型继承问题,您可能希望创建一个对象并绑定到该对象的属性,而不是直接绑定到范围:

控制器:

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

查看:

ng-model="data.a"

或者您可以切换到controller as语法。查看this link了解详情。