即使 AngularJS 中存在 ng-Model,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-change 与 ng-model 一起使用,并且也有相同的监视表达式,但代码没有;t运行,坚韧没有错误。

只是做

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

将函数附加到您的作用域:

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

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

控制器:

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

视图:

ng-model="data.a"

或者,您可以切换到controller as语法。查看此链接了解详细信息。

最新更新