Проверьте ввод текстового поля со списком массивов в angularjs

0

Я очень новичок в AngularJS, и в настоящее время я работаю над формой, разработанной в angularjs.

Моя задача - проверить ввод текстового поля со списком. Если значение, введенное в текстовое поле, отсутствует в списке, оно должно выдать ошибку проверки.

Я написал следующие строки кода для получения элементов списка через API отдыха:

app.factory("EatonScanningFactory", ['$http', function($http) {

    var EatonScanningFactoryObj = {};
    EatonScanningFactoryObj.GetToolMaxTimeList = function (columnName) {
        return $http({

            method: 'GET',

            url: _spPageContextInfo.webAbsoluteUrl
            + "/_api/web/lists/getbytitle('Tool%20Max%20Time')/Items/"
            + "?$select=Text,Value&$orderby=Text&$filter=Title eq '" + columnName + "'",

            headers: { "Accept": "application/json;odata=verbose" }

        });
    }

Он вернет элементы списка в массив. Нижеследующие строки кода предназначены для вызова вызываемой функции:

    var getToolId = EatonScanningFactory.GetToolMaxTimeList('ToolNumber');
    var getMaxLife = EatonScanningFactory.GetToolMaxTimeList('MaxLife');

Я не могу продолжить дальше, так как не уверен, как проверить, доступен ли мой текстовый блок в списке или нет.

Пожалуйста помоги

  • 0
    Можете ли вы опубликовать образец вашего списка? как это выглядит в JSON?
  • 0
    Список состоит из двух столбцов: «ToolNumber» и «MaxLife».
Показать ещё 2 комментария
Теги:
validation

1 ответ

1
Лучший ответ

Привет, вот пример правдоподобного решения:

$scope.list = EatonScanningFactory.GetToolMaxTimeList('MaxLife');

Javascript (родной) Пример:

function validateList() {
    var IsInList = false;
    for (var i = 0; i < $scope.list.length; i++) {

        if ($("#textbox").val() == $scope.list[i].listvalue) {
            IsInList = true;
            break;
        } 
    }

    return IsInList;
}

Угловой пример:

$scope.validateFunction = function() {  
    angular.forEach($scope.list, function(value, key){
        var IsInList = false;

        if($("#textbox").val() == value.listvalue) {
            IsInList = true;
            break;
        }
    });

    return IsInList;
}

//Invoke the function like follow:
$scope.validateFunction();
  • 0
    @TheAwesomeCoder: его ошибка "длина" не является свойством?
  • 0
    Извините, что вернулся только сейчас, мне пришлось кое-что сделать. Свойство length возвращает общее количество элементов в объекте или массиве, начиная с 1 и выше. Попробуйте console.log (yourobject) / или из примера console.log ($ scope.list) и посмотрите, как выглядят эти данные, и укажет, правильно ли отформатированы ваши данные в объекте / массиве. Если он не отформатирован должным образом из ответа JSON, просто используйте $ scope.list = JSON.parse ($ scope.list); // это должно преобразовать его обратно в читаемый javascript oject.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню