我收到了这个错误,我不知道我做错了什么 错误:undefined不是对象(评估'$ scope.userFormData.cpr')
有人可以帮助我,因为我不确定我做错了什么,错误是我加载页面后很快
$scope.$watch(function () {
return $scope.userFormData.cpr;
},
function (cprValue) {
console.log(cprValue);
//For at scriptet ikke skal faile første gang det bliver loadet
//tjekker vi om medlemmet har skrevet noget i cpr feltet
if (cprValue === undefined) {
return false;
}
//Hent brugerens input og split dem op
var cpr = cprValue.toString();
//Hvis cpr undeholder en streg -
var dd = +cpr.substr(0, 2); // 01
var mm = +cpr.substr(2, 2); // 02
var yy = +cpr.substr(4, 2); // 90
//Calculate if 90 is > 50
if (yy > 50) {
var year = yy + 1900;
} else {
var year = yy + 2000;
}
//Sæt fødselsdags datoen sammen så momentJS forstår det
var final = mm + "/" + dd + "/" + year;
//Beregn datoen og split resultatet op så vi kun får fødselsdags tallet
var alder = moment(final, "MM/DD/YYYY").fromNow().split(" ")[0];
//Vi clear ageToYoung feltet hvis det har været udfyldt
//og disabler andenBetaler vinduet igen
$scope.ageToYoung = "";
$scope.hideSecondpayer = true;
//Hvis personen er mellem 15 og 18 år så vis andenBetaler boksen
if ((alder >= 15) && (alder <= 18)) {
$scope.hideSecondpayer = false;
$scope.hideRegnrBarn = true;
$scope.hideKontonrBarn = true;
} else if (alder <= 14) {
//Personen er ikke gammel nok, og vi skriver det derfor til kunden
$scope.ageToYoung = "Du skal minimum være 15 år gammel";
}
});
答案 0 :(得分:0)
不是在匿名函数中返回它,而是直接在范围对象上应用$watch
-
$scope.$watch('userFormData.cpr',
function (cprValue) {
console.log(cprValue);
//For at scriptet ikke skal faile første gang det bliver loadet
//tjekker vi om medlemmet har skrevet noget i cpr feltet
if (cprValue === undefined) {
return false;
}
//Hent brugerens input og split dem op
var cpr = cprValue.toString();
//Hvis cpr undeholder en streg -
var dd = +cpr.substr(0, 2); // 01
var mm = +cpr.substr(2, 2); // 02
var yy = +cpr.substr(4, 2); // 90
//Calculate if 90 is > 50
if (yy > 50) {
var year = yy + 1900;
} else {
var year = yy + 2000;
}
//Sæt fødselsdags datoen sammen så momentJS forstår det
var final = mm + "/" + dd + "/" + year;
//Beregn datoen og split resultatet op så vi kun får fødselsdags tallet
var alder = moment(final, "MM/DD/YYYY").fromNow().split(" ")[0];
//Vi clear ageToYoung feltet hvis det har været udfyldt
//og disabler andenBetaler vinduet igen
$scope.ageToYoung = "";
$scope.hideSecondpayer = true;
//Hvis personen er mellem 15 og 18 år så vis andenBetaler boksen
if ((alder >= 15) && (alder <= 18)) {
$scope.hideSecondpayer = false;
$scope.hideRegnrBarn = true;
$scope.hideKontonrBarn = true;
} else if (alder <= 14) {
//Personen er ikke gammel nok, og vi skriver det derfor til kunden
$scope.ageToYoung = "Du skal minimum være 15 år gammel";
}
});