【发布时间】:2021-02-27 11:24:57
【问题描述】:
我有一个带有侧边栏/侧边菜单的单页应用程序
function MyApp() {
this.Menus = ko.observableArray();
this.paginatedRecordList = ko.observableArray();
this.Menus.push({
Selected: true,
IconClass: 'fa-dashboard',
Title: "Dashboard",
Route: "#dashboard",
MenuItems: []
}, {
Selected: false,
IconClass: 'fa-laptop',
Title: "Item Management",
Route: null,
MenuItems: [{
Title: 'Product',
IconClass: 'fa-shopping-cart',
Selected: ko.observable(false),
Route: '#product'
},
{
Title: 'Product Category',
IconClass: 'fa-list-ol',
Selected: ko.observable(false),
Route: '#product-category'
},
{
Title: 'Product Subcategory',
IconClass: 'fa-list-ul',
Selected: ko.observable(false),
Route: '#product-subcategory'
}
]
}, {
Selected: false,
IconClass: 'fa-truck',
Title: "Supplier",
Route: "#supplier",
MenuItems: []
}, {
Selected: false,
IconClass: 'fa-users',
Title: "Customer",
Route: "#customer",
MenuItems: []
}, {
Selected: false,
IconClass: 'fa-database',
Title: "Inventory",
Route: null,
MenuItems: [{
Title: 'Stock In',
IconClass: 'fa-download',
Selected: ko.observable(false),
Route: '#stock-in'
},
{
Title: 'Stock Adjustment',
IconClass: 'fa-upload',
Selected: ko.observable(false),
Route: '#stock-adjustment'
},
{
Title: 'Delivery Receipt',
IconClass: 'fa-clipboard',
Selected: ko.observable(false),
Route: '#delivery-receipt'
}
]
});
}
ko.applyBindings(new MyApp());
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<table>
<tbody data-bind="foreach: paginatedRecordList">
<tr role="row">
<td class="visible-lg">
<p data-bind="text: Code"></p>
</td>
<td>
<p data-bind="text: Name"></p>
</td>
<td class="visible-lg">
<p data-bind="text: PaymentTermIdName"></p>
</td>
<td>
<p data-bind="text: MobilePhone"></p>
</td>
<td class="visible-md visible-lg">
<p data-bind="text: MainPhone"></p>
</td>
<td class="col-md-3 col-lg-2">
<p data-bind="text: ContactPerson"></p>
</td>
<td class="col-md-2 visible-lg">
<p data-bind="text: moment(ModifiedOn).format('DD-MMM-YYYY h:mm A')"></p>
</td>
<td class="col-sm-1 col-xs-2">
<div class="row pull-right">
<a href="#" title="edit record" class="click-edit" data-bind="click: ClickEdit">
<p class="fa fa-edit col-sm-3"></p>
</a>
<a href="#" title="delete record" class="click-delete" data-bind="click: ClickDelete">
<p class="fa fa-trash-o col-sm-3"></p>
</a>
</div>
</td>
</tr>
</tbody>
</table>
错误提示
ReferenceError: Unable to process binding "foreach: function(){return paginatedRecordList }"
Message: Unable to process binding "text: function(){return Code }"
Message: Code is not defined
每次我导航到 Stock In 然后点击访问另一个菜单时都会出现一些错误ReferenceError: Uable to process binding .....
希望有人可以帮助我,如果您需要更多信息,请询问。
【问题讨论】:
-
您有一个
foreach: paginatedRecordList绑定,如果它说“Code未定义”,那么就是这样。分页记录列表中的一项没有Code属性。最好制作一个重现错误的样本。包括输入数据。 -
我已将您的代码示例更新为复制的存根。请自行添加缺失的位,以便触发您看到的错误。
-
是的,它说
Code is not Defined但就像我说的那样,它只发生在我访问 Stock In 模块之后,模块的其余部分没有错误。就像当我点击Dashboard并点击返回供应商时,错误"Code" is not defined没有触发,我尝试评论Stock In菜单并测试错误是否会在其他模块中触发,但不是。 -
就像我说的,修改我为你开始的代码示例,以便触发错误。没有办法猜测可能出了什么问题。您需要重现错误。
标签: javascript html knockout.js