Angular:从ng-repeat搜索结果中选择项目

时间:2017-07-18 15:44:12

标签: angularjs

是否可以从ng-repeat搜索结果中选择一个结果,它会自动转到输入区域?

<input type="text" class="form-control"  ng-model="event.url_code" ng-change="searchAccountUrl();">
                        <div ng-repeat="result in accounts | filter: event.url_code" style="border: 1px solid #dee3e8">
                            <a style="cursor: pointer">{{result.url_code}}</a>
                        </div>
                    </div>
像puucomplete一样吗?或选择标签,您选择一个选项,它将进入所选的输入区域。然后ng-model =你的选择

2 个答案:

答案 0 :(得分:1)

如果<div>中的ng-repeat符合input中的值,您只想显示ng-ifng-repeat中的一个(或几个)?

您只需将ng-ifng-repeat一起使用即可。 ng-model将在<input ng-model="myModel.url_code"> <div ng-repeat="result in accounts" ng-if="result.url_code == myModel.url_code"> <strong>{{result.url_code}}</strong> </div> 次迭代中了解您当前的项目,如果它与输入共享范围,它还将了解您用于.contains()的模型。无需更改处理程序等。数据绑定将为您完成所有操作。

==

如果您想担心部分匹配,可以使用<input ng-model="myModel.url_code"> <a href="" ng-click="setInputValue(result)" ng-repeat="result in accounts">{{result.url_code}}</a> $scope.setInputValue = function(result) { $scope.myModel.url_code = result.url_code; }; 之类的方法或代替 promisifyRun(fs, 'readFile', filepath, 'utf-8') .then (file) -> promisifyRun(zlib, 'Gunzip', file) .then (data) -> console.log "HELLO" return data .catch respondError res 的方法。只需将方法添加到您的范围内即可。

修改 根据您的评论,您需要以下内容:

   promisifyRun(fs, 'readFile', filepath, 'utf-8')
    .then (data) ->
      return data
    .catch respondError res

答案 1 :(得分:1)

使用ng-click指令将您想要插入的字符串传递给输入。

JS:

$scope.input = null;

$scope.replaceInput = function(e) {
    $scope.input = angular.element(e.srcElement).html());
}

HTML:

<input type="text" ng-model="input">
<div ng-repeat="foo in foos">
    <div ng-click="replaceInput($event)">{{foo.baa}}</a>
</div>