AngularJS使用<select>中的对象填充$ scope.selected

时间:2016-11-21 14:58:37

标签: javascript angularjs json angularjs-scope

我有一个问题,用正确的数据填充范围,保持正确的属性。 我有一个小的PHP脚本,它返回一个id,一个名字和一个时间作为json数组。  {   &#34;次&#34;:[     {       &#34; id&#34;:&#34; myID&#34;,       &#34; name&#34;:&#34; myName&#34;,       &#34;时间&#34;:&#34; 40:00:00&#34;     },     ......(另外10个对象) } 我想创建一个名称为name,id为value的下拉元素。我在ng-repeat上做了这个,这非常有效。 &lt; select name =&#34; StPl_Code&#34;类=&#34;形状控制&#34; ID =&#34;场STPL名&#34; NG-模型=&#34;选择&#34;&GT;     &lt; option ng-repeat =&#34; i in times&#34;值=&#34; {{i.id}}&#34;&GT; {{i.name}}&LT; /选项&GT; &LT; /选择&GT; 我的问题是,我想在$ scope.selected中保存选定的i以使用它的其他输入字段的时间值而不会丢失value属性中的值 这是我的角度代码   app.controller(&#39; auftraegeCrtl&#39;,function($ scope,$ http){       $ scope.selected =&#39;&#39;;       $ http.get(&#39; index.php?page = times&amp; json = true&#39;)。success(function(data,status,headers,config){         $ scope.times = data.times;       })。error(function(data,status,headers,config){       });   });

3 个答案:

答案 0 :(得分:1)

您将需要使用ng-options指令,如下所示:

<select name="StPl_Code" class="form-control" id="field-stpl-name" ng-model="selected" ng-options="i.id as i.name for i in times"></select>

您可以看到它有效here

答案 1 :(得分:0)

试试这个:

 $scope.selected = {};

而不是:

 $scope.selected = '';

答案 2 :(得分:0)

使用&#39; Ng-options&#39;代替。

<select ng-options="i as i.name for i in times track by item.id" ng-model="selected"></select>

这会将$ scope.selected设置为所选对象