14682


JavascriptからAngularjsを制御したかったのですが、うまくいきませんでした。どのように変更したらよいでしょうか？

手動で「ま」を入力すると動くのですが、jsで「ま」を入力しても動きませんでした。

[code]

    <!DOCTYPE html>
    <html lang="ja" ng-app>
    <head>
        <meta charset="UTF-8">
        <title>javascript⇒angularjs</title>
        <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
        <script>
        var mainCtrl = function($scope) {
            $scope.users = [
                {"name":"ここから"},
                {"name":"はじまる"},
                {"name":"まいれぼりゅーしょん"},
            ];
        }
        </script>
    </head>
    <body>
        <h1>Javascript⇒Angularjs</h1>
        <div ng-controller="mainCtrl">
        <p><input type="text" id="serch" ng-model="query" ></p>
        <ul>
        <li ng-repeat="user in users|filter:query|limitTo:3">
        {{user.name}}
        </li>
        </ul>
        </div>
        <button type="button" onclick="masao()">「ま」を入力</button>
        <script>
          function masao(){
            document.getElementById('serch').value="ま";
          }
        </script>
    </body>
    </html>
    
[/code]


CC BY-SA 3.0
2015-08-20T08:34:13.280
14662
2015-08-20T18:07:39.547
8823
question
javascript angularjs
JavascriptからAngularjsを制御


`ng-click`を使うと動きます。

例：

[code]

    var mainCtrl = function($scope) {
            $scope.users = [
                {"name":"ここから"},
                {"name":"はじまる"},
                {"name":"まいれぼりゅーしょん"},
            ];
    
            $scope.setQuery = function(q)
            {
                $scope.query = q;
            }
        }
    
[/code]

HTML

[code]

    <div ng-controller="mainCtrl">
        <p><input type="text" id="serch" ng-model="query" ></p>
        <ul>
          <li ng-repeat="user in users|filter:query|limitTo:3">
        　  {{user.name}}
        　</li>
        </ul>
        <button type="button" ng-click="setQuery('ま')">「ま」を入力</button>
    </div>
    
[/code]

`button`が`$scope`使うので、`mainCtrl`の中にあるのは必要です。

（日本語があまり上手じゃないので、すみません）


CC BY-SA 3.0
2015-08-20T18:07:39.547
14682
2015-08-20T18:07:39.547
11004
14662
answer