AngularJS无法获取表单数据

时间:2015-11-19 12:52:29

标签: javascript angularjs

从AngularJS中的表单中提取值似乎不起作用 - 例如我的表单代码是:

<form ng-submit="newCompany()">
    <div class="form-group">
        <label>Name</label><input type="text" name="company_name" id="company_name" tabindex="2" ng-model="newCompany.company_name" class="form-control">
        <label>Primary Contact</label><input type="text" name="primary_contact" id="primary_contact" tabindex="2" ng-model="newCompany.primary_contact" class="form-control">
        <label>Address</label><input type="text" name="address" id="address" tabindex="2" ng-model="newCompany.address" class="form-control">
        <label>Function</label><input type="text" name="function" id="function" tabindex="2" ng-model="newCompany.function" class="form-control">
        <label>Telephone</label><input type="text" name="telephone" id="telephone" tabindex="2" ng-model="newCompany.phone" class="form-control">
        <label>Fax</label><input type="text" name="fax" id="fax" tabindex="2" ng-model="newCompany.fax" class="form-control">
        <label>URL</label></label><input type="text" name="url" id="url" tabindex="2" ng-model="newCompany.url" class="form-control">
    </div>
    <div class="form-group">
        <div class="row">
            <div class="col-sm-6 col-sm-offset-3">
                <input type="submit" name="add-submit" id="add-submit" tabindex="10" class="form-control btn btn-primary" value="Add Company">
                <br>
                <div class="text-center">
                    <p ng-show="addCompany"><span class="label label-info">{{ addCompany }}</span></p>
                </div>
            </div>
        </div>
    </div>
</form>

但是在控制器中,执行newCompany.name或$ scope.newCompany.name并不起作用。它什么都不返回,并说newCompany是未定义的。

控制器:

app.controller("CompaniesController", ['$scope', 'Companies', function($scope, Companies) {
    $scope.title = 'Companies';
    $scope.title_sub = 'Add Company';

   $scope.companyData = {
       company_name: newCompany.company_name,
       primary_contact: newCompany.primary_contact,
       address: newCompany.address,
       function: newCompany.function,
       telephone: newCompany.phone,
       fax: newCompany.fax,
       url: newCompany.url
   };

    $scope.addCompany = function() {
        var company = new Companies($scope.companyData);
        company.$save();
    };

    $scope.companies = Companies.query();
}]);

任何人都可以看到错误或如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

newCompany未定义,请在使用前定义它以解决您的问题

 $scope.newCompany = {};

   $scope.companyData = {
       company_name: newCompany.company_name,
       primary_contact: newCompany.primary_contact,
       address: newCompany.address,
       function: newCompany.function,
       telephone: newCompany.phone,
       fax: newCompany.fax,
       url: newCompany.url
   };

并且您也不需要使用$scope.companyData只需在保存功能中使用newCompany

$scope.addCompany = function() {
        var company = new Companies($scope.newCompany);
        company.$save();
    };

如果您在提交数据后使用console.log(newCompany)在控制台中看到,当您尝试使用$scope.companyData

创建数据时,它已经存在键值对