Angular 带有 Typeahead 的可编辑网格
Angular Xeditable Grid with Typeahead
我在用Angular XeditableGrid.Could你告诉我怎么用Typeahead
吗?我已尝试如图 below.But 它不起作用 :( 任何帮助将不胜感激。谢谢。
<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
。如何我可以摆脱这个吗?
这是更新的fiddle,其中包含最新版本的 Xeditable Jsfiddle
我让你的 Fiddle 正常工作。
我添加了 typeahead-input-formatter: e-typeahead-input-formatter="formatStatus($model)"
和 typeahead-on-select e-typeahead-on-select="onSelectedCallback($item, $model, $label)"
到你的 typeahead。
我还更新了 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;
};
我在用Angular XeditableGrid.Could你告诉我怎么用Typeahead
吗?我已尝试如图 below.But 它不起作用 :( 任何帮助将不胜感激。谢谢。
<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
。如何我可以摆脱这个吗?
这是更新的fiddle,其中包含最新版本的 Xeditable Jsfiddle
我让你的 Fiddle 正常工作。
我添加了 typeahead-input-formatter: e-typeahead-input-formatter="formatStatus($model)"
和 typeahead-on-select e-typeahead-on-select="onSelectedCallback($item, $model, $label)"
到你的 typeahead。
我还更新了 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;
};