-1

読み取り専用入力でon-changeをトリガーしようとしています。私はそれを行うための代替方法を見つけることができません。

<!DOCTYPE html>
<html ng-app="angularjs-starter">

<head lang="en">
  <meta charset="utf-8">
  <title>Custom Plunker</title>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
  <link rel="stylesheet" href="style.css">
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
  <form>
    <input type="text" ng-change="changeRO()" ng-model="input" readonly placeholder="I have readonly attribute." />
    <input type="text" ng-change="change()" ng-model="input" placeholder="Write" />

    <p ng-repeat="text in texts">{{text}}</p>
  </form>
</body>
4

1 に答える 1

0

入力が読み取り専用の場合、ユーザーはその値を直接変更できないことを意味します。ユーザーがそれを実行できない場合、onchange イベントは決して発生しません。値を動的に変更する場合も同様です。onchange イベントは発生しません。

あなたの場合、読み取り/書き込み入力は (ng-model を介して) 「入力」モデルに接続されているため、コントローラーの $watch 関数から「changeRO」コールバックをトリガーできます。

$scope.$watch('input', function(){
  $scope.changeRO();
});
于 2013-02-22T16:06:44.033 に答える