1

このサイトのものとまったく同じタグ入力フィールドを構築しようとしています。ユーザーはタグの入力を開始できます。ui-typeahead は、ユーザーが単一の結果を選択するリストを返し、入力フィールドに既にあるタグのリストに追加します。

リストではなく文字列連結の問題を単純化することから始めました。私はそれを機能させることさえできません。これは私がしなければならないところですが、フィールドの既存の値と連結されず、置き換えられます:

<input class="form-control" type="text" ng-model="program.Demographs"
    typeahead="d for d in program.providers.Demographs"
    typeahead-min-length='3' typeahead-items='10'
    typeahead-editable="false"
    typeahead-on-select="addItem(program.Demographs)">

文字列を連結する関数は次のとおりです。

$scope.addItem = function (item) {
    $scope.program.Demographs = $scope.program.Demographs + item;
};

誰でもヒントやアドバイスを提供できますか?

4

2 に答える 2

1

先行入力フィールドの既存の選択項目に項目を追加できないことがわかった後、自分でこれに答えようと思いました。代わりに、先行入力にバインドされたものではなく、別の文字列または配列に追加する必要があります。次に例を示します。

$scope.addDemograph = function (item) {
    if ($scope.program.Demographs.indexOf(item) == -1) {
        $scope.program.Demographs.push(item);
    }
    $scope.demographs_input = [];
};

<input class="form-control" type="text" placeholder="Demographs"
   ng-model="demographs_input"
   typeahead="d for d in program.providers.Demographs"
   typeahead-on-select="addDemograph(demographs_input)"> // adds input val to list

<ul class="list-inline">
<li ng-repeat="d in program.Demographs"></li> <!--this list is added to automagically-->
</ul>
于 2013-09-03T23:36:22.217 に答える