Angular set ui-select默认来自另一个控制器

时间:2015-11-21 04:58:14

标签: javascript angularjs ui-select

我正致力于为简单的任务条目创建编辑页面。

其中一个字段是使用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>

希望这是有道理的。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

看看$ rootScope。它是通过您的所有应用程序定义的范围,在其中定义您选择的对象是实现此目的的最简单方法。

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

请注意,有人会责怪在大型应用程序中过度使用rootScoped对象,因为它可能会变得混乱。