Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 从SharePoint列表获取ListData,然后将结果绑定到下拉字段,但如何删除重复项?_Rest_Sharepoint_Knockout.js - Fatal编程技术网

Rest 从SharePoint列表获取ListData,然后将结果绑定到下拉字段,但如何删除重复项?

Rest 从SharePoint列表获取ListData,然后将结果绑定到下拉字段,但如何删除重复项?,rest,sharepoint,knockout.js,Rest,Sharepoint,Knockout.js,我从SharePoint列表中获取了列表数据,并使用knockoutJS将一列数据绑定到下拉列表中。我现在正试图从绑定的结果中删除重复项,但我很挣扎 这是我目前的代码: var Info = ko.observable(); var AppModel = { Acts: ko.observableArray([]), sel: ko.observable() } $(function () { $.aja

我从SharePoint列表中获取了列表数据,并使用knockoutJS将一列数据绑定到下拉列表中。我现在正试图从绑定的结果中删除重复项,但我很挣扎

这是我目前的代码:

var Info = ko.observable();
var AppModel = {
                    Acts: ko.observableArray([]),
                    sel: ko.observable()
}


$(function () {
    $.ajax({
            dataType: "json",
            url: "MYLIST/_vti_bin/listdata.svc/LISTNAME?$select=Title",
            data: {},
            success: dataCallBack
    });
    ko.applyBindings();
});


function dataCallBack(data) {
    var newData = [];
    for(var idx=0; idx < data.d.results.length; idx++) {

            function dataCallBack(data) {

                var newData = [];
                for(var idx=0; idx < data.d.results.length; idx++) {

                    var e = data.d.results[idx];

            var foundItem = return ko.utils.arrayFirst(newData, function(item) {
                return item == e;
            });

            if (!foundItem){
                newData.push(e);
            }
                }

                AppModel.Acts(newData);

}
var Info=ko.observable();
var AppModel={
行为:高.阿雷([]),
sel:ko.observable()
}
$(函数(){
$.ajax({
数据类型:“json”,
url:“MYLIST/\u vti\u bin/listdata.svc/LISTNAME?$select=Title”,
数据:{},
成功:dataCallBack
});
ko.applyBindings();
});
函数dataCallBack(数据){
var newData=[];
对于(var idx=0;idx
HTML此处

<select id="location-input" data-bind="options: AppModel.Acts,
                        optionsText: 'Title
                        optionsCaption: 'Choose...',
                            value: AppModel.sel">
</select>


有人能告诉我哪里出了问题吗?我认为for循环在if语句处中断了。

您检查重复项的尝试是错误的

试着这样做:

var foundItem = ko.utils.arrayFirst(newData, function(item) {
    return item == e;
});

if (!foundItem)
{
    newData.push(e);
}

感谢您的快速回复。我已经用您的建议更新了上面的代码,但下拉列表中没有填充结果。它可以工作!只需为每个项目属性添加.Title,并从ko.utils开头删除“return”。。。