2017-09-26 48 views
1

我被AngularJS和JSON卡住了。 我有一个名为form.html的视图,允许用户选择他们的省份。 我创建了省JSON文件并放入选择标记,但是当我存储MySQL时,我需要一个省编号 我在选项标记中尝试了ng-value =“province.id”,但不起作用。当用户选择省时,我怎样才能同时获得pid(provinceId)?如何从AngularJS中的JSON中获取属性并选择表格

province.JSON

[ 
    { 
    "pid" : 1, 
    "name" : "Ontario" 
    }, 
    { 
    "pid" : 2, 
    "name" : "Québec" 
    }, 
    { 
    "pid" : 3, 
    "name" : "Nova Scotia" 
    }, 
    { 
    "pid" : 4, 
    "name" : "New Brunswick" 
    }, 
    ... 

form.html

<select name="province" ng-model="user.province" ng-required="true"> 
<option value="">--- Please select ---</option> 
<option ng-repeat="province in provinces">{{province.name}}</option> 
</select> 

controllers.js

$scope.submitForm = function (user) {    
    dataObj = { 
     "name": user.name,   //it works and all fine 
     "province": user.province, //it works and all fine 
     "telephone": user.telephone, //it works and all fine 
     "postalcode": user.postalcode, //it works and all fine 
     "salary": user.salary,   //it works and all fine 
     "provinceId" : user.pid  // undefine .. 
    } 
+0

和PHP的一部分是...? – Twinfriends

+0

''? –

+0

PHP有关系吗?我认为我的PHP是好的 – Jason

回答

0

试试这个:

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.user = {}; 
 
    $scope.provinces = [{ 
 
         "pid" : 1, 
 
         "name" : "Ontario" 
 
         }, 
 
         { 
 
         "pid" : 2, 
 
         "name" : "Québec" 
 
         }, 
 
         { 
 
         "pid" : 3, 
 
         "name" : "Nova Scotia" 
 
         }, 
 
         { 
 
         "pid" : 4, 
 
         "name" : "New Brunswick" 
 
         } 
 
         ]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<select name="contactCountry" ng-model="user.province" ng-options="item.pid as item.name for item in provinces" ><option value="">Select provinces</option> 
 
</select> 
 
<br> 
 
<p>Selected Province Id = {{user.province}}</p> 
 
</div>

希望它可以帮助!。

+0

之前试过谢谢!它的工作原理,但我也需要province.name,以显示如何在同一时间得到省名? – Jason

+0

谢谢,它实际上为我编辑一些代码我从你得到了一个概念谢谢! – Jason

+0

请接受我的回答.. – Raghav

0

当用户提交选择标签会像{“PID:1”,“名”:“安大略”}对象,所以我可以在我的控制器获取

关键是我应该做的oject。

HTML文件

<select name="province" ng-model="user.province" ng-options="item.name for item in provinces" class="form-control input-lg" ng-required="true"> 
    <option value="">Select provinces</option> 
<select> 

controllers.js

myFactory.set(user);     
    dataObj = { 
     "name": user.name, 
     "province": user.province.name, 
     "telephone": user.telephone, 
     "postalcode": user.postalcode, 
     "salary": user.salary, 
     "pid" : user.province.pid 
    }