【问题标题】:Angularjs fetching fieldsAngularjs获取字段
【发布时间】:2015-11-21 20:09:22
【问题描述】:

我在 div 中有一个输入表单字段,用于获取客户名称、项目开始日期和项目结束日期。但是,我将这些字段值设置为未定义。我的代码如下。我添加了获取这三个字段的代码:

var  cilentname=$scope.vm.clientname;
var prjstartdate=$scope.vm.prjstartdate ;
var prjenddate=$scope.vm.prjenddate;


<form name="form" ng-submit="vm.login()" role="form">
      <div class="modal-body">
        <div class="form-horizontal">
          <div class="form-group">

            <label for="inputEmail3" class="col-sm-3 control-label">Project Name</label>
            <div class="col-sm-9">
                <input type="text" name="prjname" id="prjname" class="form-control" ng-model="vm.prjname" required />
                <span ng-show="form.firstName.$dirty && form.firstName.$error.required" class="help-block">First name is required</span>
            </div>
          </div>
          <div class="form-group">
            <label for="inputPassword3" class="col-sm-3 control-label">Client Name</label>
            <div class="col-sm-9">
                <div ng-controller="MyCntrl"  >
                    <select class="form-control"  name="clientname" id="clientname" class="form-control" ng-model="vm.clientname" ng-change="change(myColor)" >
                        <option value="">Select Client Name</option>                                
                        <option ng-repeat="color in colors" 
                                value="{{color.value}}" 
                                ng-selected="{{color.value == myColor}}" name="clientname" id="clientname" class="form-control" ng-model="vm.clientname">
                          {{color.clientname}}
                        </option>
                    </select>
                </div>
            </div>
        </div>
          <div class="form-group">
            <label for="inputPassword3" class="col-sm-3 control-label">Project Status</label>
            <div class="col-sm-9">
                <input type="text" name="prjsta" id="prjsta" class="form-control" ng-model="vm.prjsta" required />
                <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span>
            </div>
          </div>
          <div class="form-group">
            <label for="inputPassword3" class="col-sm-3 control-label">Project Startdate</label>
            <div class="col-sm-9">

            <!--   <input type="text" name="prjstartdate" id="prjstartdate" class="form-control" ng-model="vm.user.prjstartdate" required />-->
<div class="container" id="sandbox-container">
 <div class="input-daterange input-group" id="datepicker">
 <input class="input-sm form-control" name="prjstartdate" id="prjstartdate" class="form-control" ng-model="vm.prjstartdate"  type="text">

    </div>

</div>
                <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
            </div>
          </div>



            <div class="form-group">
            <label for="inputPassword3" class="col-sm-3 control-label">Project Enddate</label>
            <div class="col-sm-9">
                <!-- <input type="text" name="prjenddate" id="prjenddate" class="form-control" ng-model="vm.user.prjenddate" required />-->

                <div class="container" id="sandbox-container">
 <div class="input-daterange input-group" id="datepicker">
 <input class="input-sm form-control" name="prjenddate" id="prjenddate" class="form-control" ng-model="vm.prjenddate"  type="text">

    </div>

</div>
                <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
            </div>
          </div>

            <div class="form-group">
            <label for="inputPassword3" class="col-sm-3 control-label">Project PIN Url</label>
            <div class="col-sm-9">
                <input type="text" name="prjurl" id="prjurl" class="form-control" ng-model="vm.prjurl" required />
                <span ng-show="form.password.$dirty && form.password.$error.required" class="help-block">Password is required</span>
            </div>
          </div>
        </div>
      </div>

函数 MyCntrlsave($scope,$http) {

    $scope.savedetails = function() {
    var vm = this;
    var  projectname=$scope.vm.prjname;
    var  cilentname=vm.clientname
    var clientstatus=$scope.vm.prjsta
    var prjstartdate=$scope.vm.prjstartdate
    var prjenddate=$scope.vm.prjenddate
    var prjurl=$scope.vm.prjurl
    alert("cilentname"+cilentname)
    alert("prjstartdate"+prjstartdate)
    alert("prjenddate"+prjenddate)

    }
    }

【问题讨论】:

  • 我认为您错过了在尝试获取这些字段的位置添加代码。
  • function MyCntrlsave($scope,$http) { $scope.savedetails = function() { var vm = this; var projectname=$scope.vm.prjname; var cilentname=$scope.vm.clientname; var clientstatus=$scope.vm.prjsta var prjstartdate=$scope.vm.prjstartdate var prjenddate=$scope.vm.prjenddate var prjurl=$scope.vm.prjurl alert("cilentname"+cilentname) alert("prjstartdate"+ prjstartdate) alert("prjenddate"+prjenddate) } }
  • 请注意我需要解决方案
  • 而不是$scope.vm.clientname 使用vm.clientname 并检查。另外,不要在 cmets 中转储您的代码,而是更新您的问题并正确格式化代码。
  • 做了同样的事,但我再次变得不确定

标签: angularjs


【解决方案1】:

如果您使用var vm = this,您还应该使用controllerAs 语法。因此,在您使用MyCntrlsave 时,您可以使用MyCntrl as vm(如果在HTML 中使用ng-ctrl)或controllerAs(如果使用诸如路由和视图之类的东西)。

【讨论】:

    【解决方案2】:

    您需要创建一个空对象来保存数据。像下面的东西

    $scope.fromData = {};
    

    然后在你的 html 中你需要像这样包含这个对象来保存数据

    <div class="form-group">
    
            <label for="inputEmail3" class="col-sm-3 control-label">Project Name</label>
            <div class="col-sm-9">
                <input type="text" name="prjname" id="prjname" class="form-control" ng-model="fromData.prjname" required />
                <span ng-show="form.firstName.$dirty && form.firstName.$error.required" class="help-block">First name is required</span>
            </div>
     </div>
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-24
      • 2020-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      相关资源
      最近更新 更多