Javascript ng数据列表上的单击事件不工作

Javascript ng数据列表上的单击事件不工作,javascript,angularjs,json,html,html-datalist,Javascript,Angularjs,Json,Html,Html Datalist,我正在尝试自动搜索,在选择产品时,我需要重定向到与所选下拉列表关联的产品URL。我能得到所有的搜索结果 我已为所有搜索列表创建了数据列表,并在数据列表上创建了ng单击事件,以将所选详细信息发送给控制器。但是,ng click在数据列表中不起作用。你能帮我吗 例如。在(键,数据)中,我需要在前端搜索框中显示数据,但在从数据列表中选择该数据时,我需要将其相应的键发送给控制器 有问题的部分供您参考(plunker中的完整代码): 自定义搜索字段 在上面的代码中,您可以看到键和数据。我只需要显示数据

我正在尝试自动搜索,在选择产品时,我需要重定向到与所选下拉列表关联的产品URL。我能得到所有的搜索结果

我已为所有搜索列表创建了数据列表,并在数据列表上创建了
ng单击
事件,以将所选详细信息发送给控制器。但是,
ng click
在数据列表中不起作用。你能帮我吗

例如。在
(键,数据)
中,我需要在前端搜索框中显示
数据
,但在从数据列表中选择该数据时,我需要将其相应的
发送给控制器

有问题的部分供您参考(plunker中的完整代码):

自定义搜索字段

在上面的代码中,您可以看到键和数据。我只需要显示数据值,但在选择一个选项时,我需要将相应的URL链接发送到conroller。在ng repeat中创建数据列表

请从下面的plunker链接的文本框下拉列表中选择一个值

*

我已经更新了plunker,这样也可以在搜索中看到URL 简言之,我需要将该URL传递给conroller。请帮忙 告诉我如何实现它

*


如果要在对象数组中搜索,请使用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>

data.key是你的重定向url

你能在这里复制有问题的代码段吗?添加了有问题部分的代码。您可以查看json结构以了解详细信息。请在html文件的TextBox下拉列表中选择一个值,检查传递给“showProduct()”的参数是否有效。它应该是“obj”还是“obj.searchText”?因为它是一个值,作为obj或单个参数传递,所以它采用的是预期值。所选文本正在传递给控制器。现在,我必须搜索与该关键字匹配的json,并迭代在同一个JSONG中定义的相应URL。单击未从选项中触发,用于测试删除数据列表并使用
    列表。它正在与ul li一起工作。但要求是让它在点击“搜索图标”时工作。至少在数据列表上单击。因为它需要自动搜索过滤器。好的,然后你可以尝试在搜索按钮上添加模型,并将用户选择传递给showProduct Methods这很好。但如何在ng model=“userSelection”中传递URL呢。。因为ng模型接受存储在value=”“'attribute'中的内容,因为我们只存储'text',而不存储URL',所以它再次传递相同的文本。如果我错了,请告诉我。我会再试一次
    <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>
    
    $scope.showProduct = function(data){
        console.log(data.key, data.data);
    }