2016-04-14 70 views
0

我正在使用Angular Xeditable Grid.Could你告诉我如何使用Typeahead它吗?我试图如图所示below.But它不工作:(任何帮助将不胜感激感谢Typeahead的角度可编辑网格

<span editable-text="user.status" e-name="status" e-form="rowform" 
     e-typeahead="s as s.text for s in statuses | filter:$viewValue"> 
      {{ showStatus(user) }} 
</span> 

更新:。当用户点击编辑按钮,它显示了property.But的id它应该是text。怎样才能摆脱这件事?

这里是更新拨弄的Xeditable Jsfiddle

回答

1

最新版本我收到了你Fiddle工作。

我在前面添加了typeheadhead-input-formatter:e-typeahead-input-formatter="formatStatus($model)"和typeheadhead-select-e-typeahead-on-select="onSelectedCallback($item, $model, $label)"

我也更新了saveUser函数。

HTML

<span editable-text="user.status" e-name="status" e-form="rowform" 
     e-uib-typeahead="s as s.text for s in statuses | filter:$viewValue" 
     e-typeahead-input-formatter="formatStatus($model)" 
     e-typeahead-on-select="onSelectedCallback($item, $model, $label)" > 
      {{ showStatus(user) }} 
    </span> 

JS

$scope.showStatus = function(user) { 
     if (user.status && user.status.text) { 
      return user.status.text; 
     } 

     var selected = []; 
     if (user.status) { 
      selected = $filter('filter')($scope.statuses, {value: user.status}); 
     } 
     return selected.length ? selected[0].text : 'Not set'; 
     }; 

$scope.formatStatus = function(status) { 
    var displayText; 
    angular.forEach($scope.statuses, function(data) { 
     if (data.value === status || data.value === status.value) { 
     displayText = data.text; 
     return; 
     } 
    }); 

    return displayText ? displayText : status; 
    }; 

    $scope.onSelectedCallback = function ($item, $model, $label, $event) { 
      $model.status = $item.value; 
    };