Die oplossing is 'n mengsel van e.preventDefault()
en die gebruik van 'n terugbel in die ajax-oproep.Net die gebruik van die terugbel het nie die probleem opgelos nie, maar bygevoeg preventDefault
na die authenticate
funksie en die oplossing van die terugbelprobleem gedoen het.
Die finale, werkende weergawe, lyk nou iets soos volg:
define(["jQuery", "kendo", "modernizr", "app/environment"], function ($, kendo, modernizr, environment) {
function authenticate(username, password, callback) {
$.ajax({
url: environment.apiConnection + '/canlogin?userid=' + username + '&password=' + password,
type: 'get',
dataType: 'jsonp',
success: callback,
error: function (x,t,r) {
console.log('error')
}
});
}
function login(canLogin, username, password) {
if (canLogin == false) {
alert('Incorrect username or password');
return;
}
alert('good');
}
return {
viewModel: kendo.observable({
username: null,
password: null,
authenticate: function (e) {
e.preventDefault();
var username = this.get('username'),
password = this.get('password');
authenticate(username, password, function (canLogin) {
login(canLogin, username, password);
});
}
})
}
});