gpt4 book ai didi

javascript - Angular 属性始终未定义

转载 作者:行者123 更新时间:2023-12-01 05:33:45 25 4
gpt4 key购买 nike

我正在尝试使用 angularjs 函数绑定(bind) css 类。它工作正常,但总是在浏览器控制台上打印很多错误。你能在这件事上帮助我吗?我在下面附上了我的代码和屏幕截图。

 <tr ng-repeat-start="inventory in inventoryDetails.HotelFareInventoryAllotmentDetails">
<td rowspan="2">{{inventory.HotelRoomCategoryName}}</td>
<td>Inventory</td>
<td ng-class="getClassName(1)">{{inventory.D1.Inventory}}</td>
<td ng-class="getClassName(2)">{{inventory.D2.Inventory}}</td>
<td ng-class="getClassName(3)">{{inventory.D3.Inventory}}</td>
{{inventory.D31.Inventory}}</td>
</tr>
<tr ng-repeat-end>
<td>CutOff</td>
<td ng-class="{{getClassName(1}})">{{inventory.D1.Cutoff}}</td>
<td ng-class="getClassName(2)">{{inventory.D2.Cutoff}}</td>
<td ng-class="getClassName(3)">{{inventory.D3.Cutoff}}</td>

</tr>
<小时/>
  $scopeChild.getClassName = function (dayID) {

var dayIndex = parseInt(dayID) - 1;
if ($scopeChild.Days[dayIndex].IsWeekend) {
return 'weekend';
}
else {
return '';
}



}

enter image description here

最佳答案

从错误中我可以看到 $scopeChild 存在并且有一个名为 Days 的成员。但是,$scopeChild.Days[dayIndex]未定义。因此,IsWeekend 显然不是 undefined 对象的现有属性。结果,您收到错误。有两种情况:

  • 您可能希望通过修复代码逻辑来确保每次调用此函数时 $scopeChild.Days[dayIndex] 都存在
  • 您可能想确保错误不会发生,即使以错误的方式调用函数

如果你想编写一个库,那么你需要一个防白痴的解决方案,但如果问题出在你的算法上,那么你需要重新考虑它。例如,如果查看 dayID,他/她应该意识到 dayID 的值应该在 0..6 或 1..7 之间。您的情况下星期一的 ID 是什么?您确定参数 dayID 始终是数字吗?没有尾随白色字符? Days 中存在这个数字吗?等等,我敢打赌你的问题是算法有缺陷,我建议你应该调试。示例:

  $scopeChild.getClassName = function (dayID) {

var dayIndex = parseInt(dayID) - 1;
if (!$scopeChild.Days[dayIndex]) {
dayIndex = "Busted..."; //put a breakpoint here and see what happens
return;
}
if ($scopeChild.Days[dayIndex].IsWeekend) {
return 'weekend';
}
else {
return '';
}



}

此外,正如 vkrishna 已经指出的那样,您有一个语法错误,也就是说,您关闭了一个未打开的括号。最后,建议将错误粘贴到问题中,而不是将其作为图像附加。

关于javascript - Angular 属性始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35269914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com