簡體   English   中英

數據列表上的ng-click事件不起作用

[英]ng-click event on datalist not working

我嘗試自動搜索並選擇產品。我需要重定向到與所選下拉列表相關的產品URL。 我可以獲取所有搜索結果。

我已經為所有搜索列表創建了數據列表,並在數據列表上創建了ng-click事件,以將選定的詳細信息發送到控制器。 但是ng-click在數據列表中不起作用。 你能幫我嗎

例如 (key,data) ,我需要在前端搜索框中顯示data 。但是從數據列表中選擇該數據時,我需要將其各自的key發送給控制器

有問題的部分供您參考(完整的代碼在plunker中):

<h2>Custom search field</h2>
            <div id="custom-search-input">
                <div class="input-group col-md-12">
                    <input type="text" class="form-control input-lg"  list="suggestions" placeholder="search" ng-model="obj.searchText" ng-focus="searchSuggest()" />
                    <span class="input-group-btn">
                        <button class="btn btn-info btn-lg" type="button" ng-click="showProduct(obj)">
                            <i class="glyphicon glyphicon-search"></i>
                        </button>
                    </span>
                </div>
            </div>
            <div>
                <datalist id="suggestions">
                    <p ng-repeat="values in suggestionResults track by $index"><option ng-repeat="(key,data) in values" value="{{data}}"  ng-model="selectedProduct" ng-click="showProduct({key: key, data: data})"></p>
                </datalist>

            </div>

在上面的代碼中,您可以看到密鑰和數據 我只需要顯示數據值,但是在選擇一個選項時,我需要將相應的URL鏈接發送給控制器。 在ng-repeat中創建數據列表

請從下面的“ punker”鏈接的文本框中的下拉列表中選擇一個值

*

我已經更新了插件,以便在搜索下拉列表中也可以看到URL。我需要將該URL簡短地傳遞給控制器​​。 請幫助我如何實現它

*

這里的代碼

如果要在對象數組中搜索,請使用findIndex方法。

   let json_array = [{a:'apple',b:'orange'},{a:'banana',b:'carot'}];
   let position  = json_array.findIndex(key=>key.a == 'banana');
   let its_value = json_array[position].a;

否則,您需要搜索對象值,下面是一個示例。

 function find_by_key(obj,target) {

        let c = -1;
        let find_pos = c;
        loop1:
        for(let i in obj){
            c++;
            loop2:
            for(let g in target){
                if(g == i && target[g] == obj[i]){
                    find_pos = c;
                    break loop1;
                }
            }
        }
        return find_pos;
    }
    let obj = {a:'Apple',b:'Orange'};

    let find = find_by_key(obj,{a:'Apple'});

刪除您的ng-click =“ showProduct(obj)”並將其添加到

<p ng-repeat="values in suggestionResults track by $index">
    <option ng-repeat="(key,data) in values" value="{{data}}" ng-click="showProduct({key: key, data: data})">
    {{key}}
</p>

在showProduct

$scope.showProduct = function(data){
    console.log(data.key, data.data);
}

data.key是您的重定向網址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM