Typeerror: не удается прочитать свойство 'typerevueesr' undefined
Привет,
Моя потребность заключается в том, что я хочу, чтобы ввода "дата подписания де л''offre", чтобы быть помечены как "обязательные", если опция "электронная подпись-дю-контракт", посвященного выбран.
Я не знаю, в чем проблема, мне кажется, что все в порядке. Но он показывает мне следующую ошибку:
TypeError: Cannot read property 'typeRevueESR' of undefined at Scope.SupportDemandeCtrl.$scope.matchSelectedTypeRevueESR (SupportDemandeApp.js:70)
Вот код на Плунжер
SupportDemandeApp.js :
///<reference path="../Scripts/angular.min.js" /> ///<reference path="../Scripts/angular-route.min.js" /> var supportDemandeApp = angular.module('supportDemandeApp', ['ngMessages']); supportDemandeApp.controller('SupportDemandeCtrl', ['$scope', '$filter', SupportDemandeCtrl]); supportDemandeApp.run(function ($rootScope) { $rootScope.typeOf = function (value) { return typeof value; }; }) supportDemandeApp.directive('stringToNumber', function () { return { require: 'ngModel', link: function (scope, element, attrs, ngModel) { ngModel.$parsers.push(function (value) { return '' + value; }); ngModel.$formatters.push(function (value) { return parseFloat(value); }); } }; }); function SupportDemandeCtrl($scope, $filter) { //Fonction : Type de contrat (IS/OS) $scope.typeContrat = function () { $scope.typesContrat = ['Niv.I - Impartition IMS', 'Niv.II - Impartition TMA / AMS', 'Niv.III - Projet', 'Niv.IV - Impartition BPO', 'Multi - Tiers avec Impartition', 'Multi-Tiers CS & Projet', 'Vente de licence ou produit sans services ni modification' ]; $scope.selectedTypeContrat = {}; }; $scope.matchSelectedTypeContrat = function () { if (($scope.selectedTypeContrat.typeContrat === 'Niv.I - Impartition IMS') || ($scope.selectedTypeContrat.typeContrat === 'Niv.II - Impartition TMA / AMS') || ($scope.selectedTypeContrat.typeContrat === 'Niv.IV - Impartition BPO') || ($scope.selectedTypeContrat.typeContrat === 'Multi-Tiers avec Impartition')) return true; else return false; }; //Fonction : Date de signature de l’offre / Type Revue ESR $scope.typeRevueESR = function () { $scope.typesRevueESR = ["A - Faire une offre ou non", "B - Stratégie de l'offre", "A/B", "C - Soumission de l'offre", "A/B/C", "E - Signature du contrat" ]; $scope.selectedTypeRevueESR = {}; }; $scope.matchSelectedTypeRevueESR = function () { if ($scope.selectedTypeRevueESR.typeRevueESR === 'E - Signature du contrat') return true; else return false; }; }
SupportDemande.cshtml по :
<script src="~/ScriptsJS/SupportDemande.js" type="text/javascript"></script> <script src="~/ScriptsJS/SupportDemandeApp.js"></script> <div ng-app="supportDemandeApp" ng-controller="SupportDemandeCtrl"> <form class="form-horizontal" id="supportDemandeForm" name="supportDemandeForm" method="post" ng-submit="validationSupportDemande(supportDemandeForm.$valid)" novalidate> <fieldset> <div class="form-group"> <label for="selectTypeRevue" class="col-lg-2 control-label">Type de revue à réaliser<span style="color:red"> *</span></label> <div class="col-lg-10"> <select class="form-control" id="selectTypeRevue" name="selectTypeRevue" ng-model="selectedTypeRevue" required> <option disabled hidden selected></option> <option ng-option>ESR</option> <option ng-option>SSR</option> </select> </div> <div class="form-group" ng-if="selectedTypeRevue == 'ESR'"> <label for="selectTypeRevueESR" class="col-lg-2 control-label">Type de revue ESR à réaliser<span style="color:red"> *</span></label> <div class="col-lg-10"> <select class="form-control" id="selectTypeRevueESR" name="selectTypeRevueESR" ng-model="selectedTypeRevueESR.typeRevueESR" ng-init="typeRevueESR()" ng-options="typeRevueESR for typeRevueESR in typesRevueESR" required></select> </div> <div class="form-group has-warning" ng-required="matchSelectedTypeRevueESR()"> <label for="inputDateSignatureOffre" class="col-lg-2 control-label">Date de signature de l’offre</label> <div class="col-lg-10"> <input type="date" class="form-control" id="inputDateSignatureOffre" name="inputDateSignatureOffre" ng-model="inputDateSignatureOffre"> </div> </fieldset> </form> </div>
Что я уже пробовал:
Я попытался добавить 'factoryService' & '$scope ' в качестве элементов массива...