我正致力于为简单的任务条目创建编辑页面。
其中一个字段是使用ui-select生成项目的下拉列表'任务可以分配给。
我遇到的问题是表单包含在ng-controller =" getTask中作为vm" 但是,ui-select字段包含在ng-controller =" Projects as vm"生成列表。
我试图从getTask控制器设置项目字段的默认值,但是我不能这样做,因为它超出了范围。
从getTask控制器中获取$ select.selected可变的最佳方法是什么?
这是我正在处理的代码:
<form ng-controller="getTask as vm">
<input type="text" name="task_name" value="{{ vm.task.name }}" />
<div ng-controller='Project as vm' class="form-group select">
<ui-select ng-model="selectedItem">
<ui-select-match>
<span ng-model="vm.formData.prject_id" ng-change="vm.setProject($select.selected.id)" ng-bind="$select.selected.project_name"></span>
<input type="hidden" name="project_id" value="{{ $select.selected.id }}">
</ui-select-match>
<ui-select-choices repeat="project in (vm.projects | filter: $select.search) track by project.id">
<span ng-bind="project.project_name"></span>
</ui-select-choices>
</ui-select>
</div>
</form>
希望这是有道理的。 任何帮助将不胜感激。
答案 0 :(得分:0)
看看$ rootScope。它是通过您的所有应用程序定义的范围,在其中定义您选择的对象是实现此目的的最简单方法。
https://docs.angularjs.org/api/ng/service/ $ rootScope
请注意,有人会责怪在大型应用程序中过度使用rootScoped对象,因为它可能会变得混乱。