2016-12-13 29 views
0

我有一個問題:如何從父控制器綁定屬性?當md-selected-itemmd-search-text是來自AddTaskController(即at.task.project)的屬性時,自動完成工作正常(返回匹配的元素)。當我嘗試從父數據綁定 - md-items | filter:edc.task.project - 無法正常工作(過濾器返回的所有元素,而不是匹配的項目) http://plnkr.co/edit/ZCIU5gNwWfWdIOnz0ykbmd-autocomplete Angular 1.x - 從父控制器綁定數據

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

請提供一個codepen/plunkr等 – kuhnroyal

+0

https://plnkr.co/edit/3stDa5Y8Ou9iYD8ZNRdY這裏的普朗克。第一個問題 - 過濾器不起作用。第二 - 我必須清除輸入,未集中輸入字段,然後單擊輸入字段。 – miuosh

回答

1

它的工作原理,你只是這個覆蓋它:md-search-text="edc.task.project"。這是一個參考,只要您清除輸入字段,它將被設置爲未定義或空白。結果你的過濾器不會過濾。

第二個問題是因爲您設置了md-selected-item。只要設置了一個,在自動完成再次搜索之前,需要清除輸入。

相關問題