Метод проверки 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 тег

Другие вопросы по тегам