您好我有以下情况
我有以下html Wh
<body ng-app="myApp" ng-controller="MyController">
<input type="text" placeholder="enter a number" ng-model="c.num" on-blur="test()" />
<input type="text" ng-model="c.Id" ng-init="c.Id = pId" />
</body>
在我的控制器上我有
$scope.test=function() {
$scope.pId = $scope.num+1;
};
因此,当第一个框中输入5时,第二个框应该更新6.但它没有。 请让我知道如何解决它。谢谢 这是它的plunker http://plnkr.co/edit/9QoMwsjUBl8CNAFgtYcj?p=preview
答案 0 :(得分:0)
ng-blur是要走的路:
标记:
<body ng-app="myApp" ng-controller="MyController">
<input type="text" placeholder="enter value" ng-model="num" ng-blur="test()" />
<input type="text" ng-model="pId" />
</body>
控制器
angular.module('myApp', [])
.controller('MyController', function($scope) {
$scope.c = {};
$scope.test = function() {
$scope.pId = parseInt($scope.num) + 1;
};
});
答案 1 :(得分:0)
请检查第一个ng型号是否正确。我想你想要这个:
<body ng-app="myApp" ng-controller="MyController">
<input type="text" placeholder="enter a number" ng-model="num" on-blur="test()" />
<input type="text" ng-model="c.Id" ng-init="c.Id = pId" />
</body>
答案 2 :(得分:0)
通过查看代码,我不确定对象'c'是什么或它被实例化的位置。我也不认为你正在使用ng-init。在下面的文档中,它建议仅在角度上下文中不可用的范围中使用它(例如ng-repeats)。
如何将html更改为
<body ng-app="myApp" ng-controller="MyController">
<input type="text" placeholder="enter a number" ng-model="num" ng-blur="test()" />
<input type="text" ng-model="pId" />
</body>
并保持您的JavaScript相同。
编辑: Angular文档https://docs.angularjs.org/api/ng/directive/ngInit
答案 3 :(得分:0)
工作fiddle
ng-init
,不需要它。 将输入类型更改为数字(然后不需要parseInt)。否则你会得到5 + 1 = 51。
$scope.test=function() {
$scope.c.Id = $scope.c.num + 1;
};