MD -Autococtlete Angular 1.x-绑定父控制器的数据



我有问题:如何绑定父控制器的属性?当md-selected-itemmd-search-textAddTaskController(即at.task.project)的属性时,AutoComplete可以正常工作(返回匹配的元素)。当我尝试绑定父的数据时-md-items | filter:edc.task.project-无法正常工作(过滤返回所有元素而不是匹配的项目) http://plnkr.co/edit/zciu5gnwwwfwdionz0ykb

<div ng-controller="EditTaskDialogController as edc">        
      <!-- autocomplete fields -->
          <div layout="row" ng-controller="AddTaskController as at">
            <!-- project autocomplete -->
            <div >
              <md-autocomplete required md-no-asterisk
                              md-input-name="project"
                              md-selected-item="edc.task.project"
                              md-search-text-change="at.searchProjectChange(edc.task.project)"
                              md-search-text="edc.task.project"
                              md-selected-item-change="at.selectedProjectChange(item)"
                              md-items="item in at.profile.projects | filter:edc.task.project"
                              md-item-text="item"
                              md-min-length="0"
                              md-input-minlength="0"
                              md-floating-label="Projekt...">
                          <md-item-template>
                              <span md-highlight-text="edc.task.project" md-highlight-flags="^i">{{item}}</span>
                          </md-item-template>
                          <div ng-messages="editTaskForm.project.$error" role="alert">
                              <div ng-message="required">Pole nie może być puste.</div>
                          </div>
              </md-autocomplete>
            </div>
    </div>

它有效,您只是在用它覆盖它: md-search-text="edc.task.project"。这是一个参考,一旦您清除输入字段,它将设置为未定义或空的。结果,您的过滤器不会过滤。

第二个问题是因为您设置了md-selected-item。一旦设置了一个,就需要在AutoComplete再次搜索之前清除输入。

最新更新