angular 双向数据绑定

有这样一个需求,页面中有两个input,第一个输入,第二个的值跟着变。第二个输入的时候,第一个不变。请教怎么实现?

阅读 2.9k
5 个回答

第一个使用事件,第二个使用双向绑定。
template:

<input type="text" (keyup)="input($event)" />

<input type="text" [(ngModel)]="result" />

{{result}}

ts:

public result: string;
public input(e: any) {
    this.result = e.target.value;
}

望有帮助。

<div ng-app="myapp" ng-controller="ctr">
    input1: <input type="text" ng-model="md" > <br>
    input2: <input type="text" reference="md" > 
</div>
<script>
    angular.module('myapp', []).controller('ctr', ['$scope', function ($scope) {
        $scope.md = 123;
    }]).directive('reference', [function () {
        return {
            restrict: 'A',
            link: function (scope, iElement, iAttrs) {
                scope.$watch(iAttrs.reference, function(){
                    iElement[0].value = scope[iAttrs.reference]
                })
            }
        };
    }]);        
</script>

angular里面应该也有跟vue一样的watch监听属性

vue里面的思路是监听input1里面的值,如果发生变化则input2的值也跟着发生变化,angular应该也有类似的方法,你可以去看下文档

Angular 4可以这么写

<input [(ngModel)]="variable" name="variable"/>
<input value="{{variable}}" />

第一个使用普通的事件绑定,在输入时候处罚改变第二个的值,然后第二个用双向数据绑定

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题