TypeError: Невозможно прочитать свойство 'parameters' undefined в AngularJs - PullRequest
0 голосов
/ 06 февраля 2020

AngularJs функция скрытия / отображения не работает

Я пытаюсь работать с этим кодом AngularJS, который должен иметь возможность скрывать / отображать параметры, основанные на Bool (Y / N) - если пользователь выбирает Да, определенные параметры становятся не скрытыми, в противном случае остаются скрытыми. Я новичок в AngularJs, и было бы здорово узнать, почему эта функция скрытия / отображения не работает. Я перечислил ниже контроллер, шаблон вместе с ошибкой.

Спасибо за вашу помощь заранее.

Ниже находится контроллер:

['$scope', '$http', function ($scope, $http) {
    /*

    You can hide other parameters by adding json-config in the placeholder-field for the parameter using this directive.
    Example of json-config:

    [{"value": 'True',"showParameters": ["Input13", "Input14"]}]

    When the value of the boolean-toggle must be set to True for parameters Input13 and Input14 to be visible.
    The parameters must be configurated as visible in the beginning.

    */
    $scope.init = function () {

        if ($scope.parameter.value !== '') {
            $scope.parameter.value = angular.lowercase($scope.parameter.value) === 'true' ? 'True' : 'False';
        }
        $scope.showParameterConfigs = eval($scope.parameter.placeholderText);
        $scope.$watch('parameter.value', function (newValue) {
            if (newValue !== undefined) {
                $scope.setParametersVisible();        
            }
        })
    }

    $scope.setValue = function (newValue) {
        $scope.parameter.value = newValue;
        $scope.setParametersVisible();
    }

    $scope.setParametersVisible = function () {

        _.each($scope.showParameterConfigs, function (c) {
            _.each(c.showParameters, function (p) {
                var parameterToHide = _.find($scope.$parent.cartItem.parameters, function (pp) {
                    return pp.variableName == p;
                });
                if (parameterToHide !== undefined) {
                    parameterToHide.visible = c.value == $scope.parameter.value ? 1 : 0;
                    parameterToHide.value = parameterToHide.visible ? parameterToHide.value : '';
                }
            }); 
        });
    }

    $scope.init();
}]

Ниже приведен шаблон:

<div class="btn-group">
    <button class="btn" data-ng-class="parameter.value == 'True' ? 'btn-success' : 'btn-default'"
            data-ng-click="setValue('True')" data-igap-localize>Yes</button>
    <button class="btn" data-ng-class="parameter.value == 'False' ? 'btn-danger' : 'btn-default'"
            data-ng-click="setValue('False')" data-igap-localize>No</button>
</div>

и здесь ошибка:

screenshot of the error

...