好的,我决定发布,因为我对此感到困惑,而且我有一个截止日期。
哦,仅供参考,我已经阅读了这些页面(以及许多其他页面): http ://docs.angularjs.org/api/ng.directive:select 如何在 AngularJS 的 ng-options 中设置 value 属性?
而且我已经制作了几个 jsfiddle 版本,制作了其中的一半或其他版本,但没有一个能够完全完成。
所以,在一个对话框窗口中,我有一个表单,它有几个选择菜单(不要担心对话框,它是一大堆其他的东西,这使得它更难理解,它只会使这个复杂化)。
我有一个模型,其数据值如下所示:
$scope.events = [{
"name":"Escape The Cape",
"tag":"EscapeCape",
"playlists":[{
"name":"Run Course Preview",
"tag":"RunCoursePreview"
}]
}, {
"name":"Wildwood Triathlon",
"tag":"WildwoodTriathlon",
"playlists":[{
"name":"Bike Course Preview",
"tag":"BikeCoursePreview"
}, {
"name":"Race Announcements",
"tag":"RaceAnnouncements"
}]
}];
我需要做的是以角度显示初始选择菜单,它允许您选择事件名称 [Escape The Cape, Wildwood Triathlon],并且该选择菜单中的值是与名称匹配的标签属性。
从该菜单中选择一个选项后,将根据现有的事件值显示第二个菜单,例如:ng-show="event"。
第二个菜单是 select2.js 多选菜单,允许您选择所选事件的一个或多个播放列表。不是任何其他播放列表。也不是 group by,也不需要在 ng-options 中进行 group by。我希望这很容易。
所以,然后,我需要能够添加另一个事件,并重复等等。
例如,事件将绑定到数组 $scope.selectedEvents = []。
这是到目前为止我想出的 HTML,但我被卡住了,这让我在这一点上很恼火。
<div class="control-group">
<label class="control-label">Events</label>
<div id="event-template">
<div class="controls events">
<select class="events-menu input-xlarge" ng-model="file.events" ng-options="obj.tag as obj.name for obj in events"></select>
</div>
<div class="controls playlists">
<select name="playlist" class="playlist-menu input-xlarge select2" multiple="multiple" ng-options="event as "></select>
</div>
</div>
<a href class="add-event" ng-click="addEvent()">
<span>Add Event</span>
</a>
</div>
我发现并使用了一些 jsfiddles 来尝试这样做,但无处可去。 http://jsfiddle.net/jaredwilli/AUPYP/ http://jsfiddle.net/jaredwilli/bjs3g/ http://jsfiddle.net/jaredwilli/7jZXZ/1/
任何关于如何在选择菜单属性中执行 ng-options 查询以解决组合框痛苦的任何见解,我都会非常感激。
谢谢贾里德