使用 AngularJS 将一个 Select 的 JSON 对象复制到另一个 Select ng-model [英] Copy JSON Object of One Select to another Select ng-model using AngularJS
问题描述
我有一个 JSON 集合
$scope.person = [{身份证":1姓名":约翰"},{身份证":2姓名":杰克"},{身份证":3名称":沃森"},];
我有两个具有相同 JSON 集合的 HTML Select.我在第一个选择Person"中选择了一个人Watson,然后我需要在第二个 HTML 选择复制人"中更新相同.但我无法更新.
我在 HTML 选择中将 JSON 对象绑定为值,而不是 Id
或 Name
<头><title>HTML 选择使用 AngularJS</title><script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>头部><身体><div ng-app="myApp" ng-controller="myCtrl"><div class="md-block"><label>人物</label><select ng-model="selected.person"><option ng-repeat="key in person | orderBy:Id" value="{{key}}">({{key.Name}})</option></选择>
<小时/><div class="md-block"><label>复制人物</label><select ng-model="selected.copy_person"><option ng-repeat="key in person | orderBy:Id" value="{{key}}">({{key.Name}})</option></选择>
<脚本>var app = angular.module('myApp', []);app.controller('myCtrl', function ($scope) {$scope.person = [{身份证":1,姓名":约翰"},{身份证":2,姓名":杰克"},{身份证":3,名称":沃森"}];$scope.selected = {人:空,复制人:空};$scope.$watchCollection('selected.person', function (newData, oldData) {var obj = JSON.parse(newData);if ((obj != undefined) && (obj != null) && (obj.Id != undefined) && (obj.Id != null) && (obj.Id!= "0")) {var name = obj.Name;警报(名称);$scope.selected.copy_person = obj;}});});</html>
这里我使用了 $scope.$watchCollection
来更新 Copy Person
$scope.$watchCollection('selected.person', function (newData, oldData) {var obj = JSON.parse(newData);if ((obj != undefined) && (obj != null) && (obj.Id != undefined) && (obj.Id != null) && (obj.Id!= "0")) {var name = obj.Name;警报(名称);$scope.selected.copy_person = obj;}});
我的代码未能在第二次选择中更新.请帮助我如何更新...
这是你必须使用的代码,ng-options 就是为此而生的:
<头><title>HTML 选择使用 AngularJS</title><script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>头部><身体><div ng-app="myApp" ng-controller="myCtrl"><div class="md-block"><label>人物</label><select ng-model="selected.person" ng-options="p as p.Name for p in person"></选择>
<小时/><div class="md-block"><label>复制人物</label><select ng-model="selected.copy_person" ng-options="p as p.Name for p in person"></选择>