Hi,
I am new to KnockoutJS and in my application i am setting the visible property to a div like this
<div class="cd-fail-message" data-bind="visible: containerModel().QlikViewData.Navigations.length = 0">No results found</div>
But its showing exception ,
Uncaught TypeError: Unable to process binding "visible: function (){return containerModel().QlikViewData.Navigations.length > 0 }"
Message: Cannot read property 'length' of undefined
This is my viewmodel object in JS
function containerViewModel() {
mainViewModel = this;
mainViewModel.isBusy = ko.observable(false);
mainViewModel.errorMessage = ko.observable("");
mainViewModel.containerModel = ko.observable(
{
HomeSettings: ko.observable(),
ERPData: ko.observable({ HeaderText: '', BodyText: '', FooterText: '' }),
KPIData: ko.observable({ HeaderText: '', BodyText: '', FooterText: '' }),
iJETData: ko.observable({ HeaderText: '', BodyText: '', FooterText: '' }),
QlikViewData: ko.observable({ HeaderText: '', BodyText: '', FooterText: '' }),
IDEAData: ko.observable({ HeaderText: '', BodyText: '', FooterText: '' })
}
);
GET_AllContainer(mainViewModel);
}
function GET_AllContainer(mainView) {
mainViewModel.isBusy(true);
$.ajax({
url: hostApi + api_GetAllContainer,
contentType: "json",
success: function (result) {
mainView.containerModel(result);
mainViewModel.isBusy(false);
},
error: function (result) {
mainViewModel.errorMessage(result);
mainViewModel.isBusy(false);
}
});
}
Also i am using template to bind a sequence of data, but if the data is null exception will be thrown, how can i prevent that?
<section class="cd-gallery">
<ul class="noPadding" data-bind="template: { name: 'Report-Tiles', foreach: containerModel().QlikViewData.Navigations }"></ul>
Can anyone please help me
Thanks