Angucomplete-alt在自动完成标记上使用ng-scope

时间:2015-06-04 04:23:59

标签: javascript angularjs autocomplete

我有一个带有输入标签的表单,我想使用自动完成功能,允许用户输入名称,并在用户输入名称字符时显示自动完成建议。

我的问题是如果用户不想使用自动完成名称并希望使用自定义名称,如何在我的控制器中访问它。

我无法在此输入标记上设置ng-model,因为它由angucomlete-alt内部管理。

我在ng-repeat中有这个autocomlete-alt标签。

<div ng-repeat="resident in vm.residents">

    <div class="form-group">
    <label class="col-lg-2 col-sm-2 control-label">Name</label>
        <div class="col-lg-6">
            <angucomplete-alt 
                placeholder="Name"
                pause="100"
                selected-object="residentSelected" 
                search-fields="name"
                title-field="name"
                minlength="1"
                remote-api-handler="searchApi"
                remote-url-response-formatter="searchResponseFormatter"
                input-class="form-control form-control-small"
                match-class="highlight"
                clear-selected="true">
        </div>
    </div>
</div>

此外,我的要求是在名称字段下方的其他输入标记上设置所选对象的字段,如何通过模型绑定在resident(iterator)上设置字段。

我无法在augucomplete-alt上设置ng-model,以便它反映在ng-repeat的resident(iterator)上。

我的目标是能够从angucomplete标签本身为resident分配/绑定值。

任何人都可以提前帮助我。

2 个答案:

答案 0 :(得分:2)

嗯,你只需要这样做....

           <angucomplete-alt 
            placeholder="Name"
            pause="100"
            selected-object="residentSelected" 
            search-fields="name"
            title-field="name"
            minlength="1"
            remote-api-handler="searchApi"
            remote-url-response-formatter="searchResponseFormatter"
            input-class="form-control form-control-small"
            match-class="highlight"
            clear-selected="true"
            override-suggestions="true"/>

倍率-建议=&#34;真&#34; :此属性会覆盖您的选择,并将您选择的对象属性设置为您在字段中键入的自定义输入。

以下是Link

的文档

答案 1 :(得分:1)

使用覆盖建议。 看看这个例子4

http://ghiden.github.io/angucomplete-alt/#example4

这是一个使用ng-repeat

的工作示例

http://plnkr.co/edit/6IiUul?p=preview

$scope.residentSelected = function(selected) {
  if (selected.originalObject.name) {
    $scope.vm.residents[this.$parent.$index].name = selected.originalObject.name;
  } else {
    console.log('overriding selection');
    $scope.vm.residents[this.$parent.$index].name = selected.originalObject;
  }
}