angular $ setviewvalue $ parser冲突

时间:2015-06-08 03:35:00

标签: javascript angularjs

我想实现一个输入标记,每当我输入一个值时,它会自动添加1。

这是我的代码

    ctrl.$parsers.push(function (value) {
      value = value + 1;

      if (ctrl.$viewValue !== value) {
        ctrl.$setViewValue(value);
        ctrl.$render();
      }
      console.info(value, ctrl.$viewValue);
      return value;
    });

但结果不是我想要的。我希望它更新视图和模型,只需添加1。

我想使用$解析器来实现它,因为真实世界的项目需要这个...它比这要复杂得多。

这是plunker plunker

1 个答案:

答案 0 :(得分:-3)

看看我试过的这个简单的代码,可能对你有用

<body ng-app="myApp">

<div id="home" data-ng-controller="HomeCtrl">
<input type="number" ng-model="add"  id="txt1" onchange="updateAngularModel(this.value)">{{add}}
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script>
var app=angular.module('myApp', []);
app.controller('HomeCtrl', ['$scope', function($scope) {

}]);
</script>
<script>
 function updateAngularModel(val) {
 console.log("val==", val)
 document.getElementById("txt1").value++;
}

</script>
</body>