繁体   English   中英

将输入文本发送到AngularJS中的控制器作用域

[英]Send input text to controller's scope in AngularJS

我有这个html页面:

<div class="rtm-nav">
    <div ng-app>
    <body ng-controller="DemandCtrl" ng-submit="submit()">
        <label>From:
            <input type="text" name="input" ng-model="ctrl.dataa.from">
        </label>
        <label>To:
            <input type="text" name="input" ng-model="ctrl.dataa.to">
        </label>
        <input type="submit" id="submit" value="Apply" />

        <script src="demand/demand.js"></script>
    </body> 
    </div>
</div>

我想从控制器范围的2个文本框中保存输入文本。 这是我尝试执行的操作:

class DemandCtrl {
    constructor(ChartDataService) {
        this.ChartDataService = ChartDataService;
        debugger;
        this.dataa = {
            from: ctrl.dataa.from,
            to: ctrl.dataa.to
        };
    }

    $onInit() {
        getData.call(null, this);       
    }

}

我收到错误消息:

ReferenceError:ctrl.dataa未定义

有没有更好的方法将数据从输入文本发送到控制器?

您尚未定义控制器接受的范围。 这就是为什么您无法从表单读取数据的原因。 我还建议使用<form>处理任何类型的数据提交。 因此,请看一下您的重构示例:

==== HTML ======

    <div class="rtm-nav">
        <div ng-app="my-app">
          <form ng-submit="submit()" ng-controller="DemandCtrl">
            <label>From:
                <input type="text" name="input" ng-model="ctrl.data.from">
            </label>
            <label>To:
                <input type="text" name="input" ng-model="ctrl.data.to">
            </label>
            <input type="submit" id="submit" value="Apply" />
          </form>

        </div>
    </div>

=====控制器

    angular.module('my-app', [])
       .controller('DemandCtrl', function($scope) {
            $scope.submit = function() {
                let data = {
                    from: $scope.ctrl.data.from,
                    to: $scope.ctrl.data.to,
                }
               console.log(data);
            };
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM