Метод проверки can.js не работает
Может ли кто-нибудь помочь мне вызвать функцию проверки в can.js? Я добавляю can.jquery.js и can.map.validations.js, а затем создаю такой небольшой пример:
var mymap = can.Map.extend({
init: function () {
this.validatePresenceOf('myfield'); // this line reports an error
}
});
при загрузке страницы с помощью этого скрипта я получаю сообщение об ошибке в браузере: "Uncaught TypeError: undefined не является функцией"
На самом деле любая функция this.validate* не работает
После некоторых исследований я заметил, что когда я помещаю этот код под
$(document).ready{}
это работает, но если я помещаю его в файл.js и загружаю через тег - браузер сообщает об ошибке.
И я не собираюсь писать весь свой код JS на самой странице
2 ответа
Смотрите здесь, это довольно ясно (помогло мне в прошлый раз), что вы должны использовать $document.ready(), иначе это не будет работать, поэтому попробуйте создать новый file.js, чтобы $document.ready() содержал все ваши задачи. код, и связать его, я надеюсь, что я буду полезен в этом отношении, если нет, то баг меня, я не возражаю вообще:) ..
Комментируя это поздно, но в любом случае - это не сработало для меня в любом случае, поэтому я просто взял пример с http://jsbin.com/jofeq/5/edit?html,js,output - и скопировал его в мой код. Удивительно, но после копирования это сработало - не уверен, что было не так с моей стороны.
В этом примере это выглядит так:
var Person = can.Map({
init: function () {
this.validatePresenceOf('firstName');
this.validatePresenceOf('lastName');
}
}, {});
и он работает без документов. трюки или что-то еще - просто включены в body
тег