首页 > 解决方案 > 无法从输入到控制器获取 ng-model 值

问题描述

我是 Angularjs 的新手。我在 ionic 中有一个日期选择器。选择日期输入后,将获取所选日期的值。现在我正在尝试使用 $scope 在控制器中访问此值,但我无法访问。

这是我的html

<div class="list">
  <label class="item item-input">
    <input type="text" data-ng-model="dateValue" disabled>
  </label>
</div>

<my-calendar display="dateValue" dateformat="'yyyy-MM-dd'"></my-calendar>
  <button id="fieldWork-button21" data-ng- click="saveFieldWork(fieldWork)"></button>

我在提交后调用保存函数。我正在将其他值与 fieldWork 对象绑定。

这是Controller.js

$scope.dateValue = "";
$scope.saveFieldWork = function(fieldWork) {
  fieldWork.fieldDate = $scope.dateValue;
  //other code
};

在这里,我无法获得选定的日期值。但在选择日期后的输入中,它显示正确的日期。

目前它显示的是空字符串而不是选定的日期。谁能告诉如何将此值输入控制器?如果 AngularJs 支持两种方式的数据绑定,那么为什么我不能ng-model从 html 获取值到控制器?

标签: javascriptangularjs

解决方案


您无权访问 html 中的 fieldWork 变量,因此您无法在data-ng-click.

<button id="fieldWork-button21" data-ng-click="saveFieldWork()"></button>

看看这个

(function() {
  'use strict';

  angular.module('player', [])
    .controller('MainCtrl', ['$scope', function($scope) {
      var fieldWork = {};
      $scope.saveFieldWork = function() {
        fieldWork["fieldDate"] = $scope.dateValue;
        console.log(fieldWork);
        //other code
      };
    }])

})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.10/angular.min.js"></script>
<div ng-app='player'>
  <div ng-controller='MainCtrl'>
    <div class="list">
      <label class="item item-input">
            <input type="text" data-ng-model="dateValue">
     </label>
    </div>
    <button id="fieldWork-button21" data-ng-click="saveFieldWork()">Save</button>
  </div>
</div>


推荐阅读