我通过创建一个表单来搞乱 angularjs(顺便说一句,这很棒)。我从 json 加载数据,我可以成功读取数据,但我对我所做的 plunker 有几个问题。(http://plnkr.co/edit/LHX40xHKmoB9onboeNrV?p=preview)
我那里有两张表格,都是一半的工作。在我继续之前,有一个对 angularjs pro 的请求:总的来说,我的 plunker 代码样式是正确的 angularjs 方式吗?我该如何改进它?谢谢。
无论如何,以下代码段是两种形式之间的区别:
FORM#1:
为了使表单正常工作,我指定了 'jsoncountry
中获取它的值countries
JS:
$scope.vm.country = data[0].countries[0];
HTML:
Country: <select ng-model="vm.country" ng-options="c.name for c in vm.countries"></select>
FORM#2:
JSON 与 #2 略有不同。该countries
数组称为country
。选择选项 expr 引用自身 - 失败。此处提交的 jsonon-click
具有正确的国家代码/名称值,这是我所追求的,但它也包含cities
数组,这不是我想要的。
JS:
$scope.vm.country = data[0].country[0];
HTML:
Country: <select ng-model="vm.country" ng-options="c.name for c in vm.country"></select>
我想确切地知道为什么选择框的行为方式与它们在 form2 中的行为方式相同。至于提交表单,显然不希望发送无用的数据。那么你将如何只发送你需要的东西$scope.vm
呢?对于小型表单,手动将每个输入添加到新的 $scope 项目可以正常工作,但对于具有许多输入的大型表单,它并不理想。
更新
这是一个有效的解决方案,将适当的值放入单独的变量 ( $scope.form
) 中。此外,$watch
已更改为ng-change
. 这可能对其他人有所帮助。