Javascript AngularJS ng选项内置ng repeat
非常简单的问题,但不知道如何解决 我重复一遍,迭代模型视频 模型有一个选定的值,我想在下拉列表中看到它:Javascript AngularJS ng选项内置ng repeat,javascript,angularjs,Javascript,Angularjs,非常简单的问题,但不知道如何解决 我重复一遍,迭代模型视频 模型有一个选定的值,我想在下拉列表中看到它: <div data-ng-repeat="singleVideo in model.videos"> {{singleVideo}}<select data-ng-model="singleVideo.name" ng-options="item.name for item in videoList"></select> </div>
<div data-ng-repeat="singleVideo in model.videos">
{{singleVideo}}<select data-ng-model="singleVideo.name" ng-options="item.name for item in videoList"></select>
</div>
这是视频列表项:
$scope.videoList = [
{id:1,name:"VIDEO_ONE"},
{id:2,name:"VIDEO_TWO"},
{id:3,name:"VIDEO_Three"}
];
我只是希望看到第一个下拉值将设置为VIDEO_ONE
第二个下拉值将设置为VIDEO_TWO
当前下拉列表为空
我怎样才能做到这一点
您只需为ng选项设置一个值,并将
item.id设置为videoList中项目的item.name
。请参阅下面的代码
(我将id设置为值,因为我认为它更合适。在某些地方,您还需要根据id更新您的name
属性。反之亦然,请选择。)
角度模块('testapp',[])
.controller('appCtrl',函数($scope){
$scope.model={
视频:[
{id:1,名称:“VIDEO_ONE”},
{id:2,名称:“VIDEO_TWO”}
]
};
$scope.videoList=[
{id:1,名称:“VIDEO_ONE”},
{id:2,名字:“VIDEO_TWO”},
{id:3,名字:“VIDEO_Three”}
];
});代码>
{{singleVideo.name}
{{singleVideo}}
当我更改值时,只有id在更改,而名称不在更改,您知道为什么吗?“videos”:[{“id”:1,“name”:“VIDEO_ONE”},{“id”:2,“name”:“VIDEO_TWO”}]正如我提到的,它只更新id
属性。我会保留name
属性,因为它是多余的,如果您从videoList
中获取名称。问题是当我更改项目或添加另一个项目名称时,模型中的名称没有更新,因此我需要一种方法来包括名称,我如何做到这一点?或者在事件x之后手动执行,或者您只需将id保存在模型中。视频
并从视频列表
中获取名称,因为您有id。我建议采用方法2。我不确定这是否是最佳做法,基本上我想将它们都作为模型的一部分,但不确定为什么不能实现。
$scope.videoList = [
{id:1,name:"VIDEO_ONE"},
{id:2,name:"VIDEO_TWO"},
{id:3,name:"VIDEO_Three"}
];
<div data-ng-repeat="singleVideo in model.videos">
{{singleVideo}}<select data-ng-model="singleVideo.name" ng-options="item.name as item.name for item in videoList"></select>
</div>