Угловой набор ui-select default с другого контроллера

Я работаю над созданием страницы редактирования для простой записи задачи.

Одно из полей использует ui-select для генерации выпадающего списка "проектов", которым может быть назначена задача.

Проблема, с которой я сталкиваюсь, заключается в том, что форма заключена в ng-controller="getTask as vm". Однако поле ui-select заключено в ng-controller="Projects as vm", чтобы сгенерировать список.

Я пытаюсь установить значение по умолчанию для поля проекта из контроллера getTask, однако я не могу сделать это, поскольку он выходит за рамки.

Каков наилучший способ сделать $ select.selected изменяемым из контроллера getTask?

Вот код, с которым я имею дело:

<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>

Надеюсь, что это имеет смысл. Любая помощь будет принята с благодарностью.

1 ответ

Посмотрите на $rootScope. Это область действия, определяемая во всех ваших приложениях. Определение "выбранного" объекта - это самый простой способ добиться этого.

https://docs.angularjs.org/api/ng/service/$ rootScope

Обратите внимание, что кто-то будет винить чрезмерное использование объектов rootScoped в больших приложениях, потому что это может привести к путанице.

Другие вопросы по тегам