2013-07-21 1 views
0

Я пытался следовать этому учебники:Кордова/PhoneGap приложение с YEOMAN/позвоночника/рули/требуют

развивать мой тест Кордову приложение с yoman и позвоночником ... Я выполнил все шаги, но когда я попытался вставить свой первый вид, консоль дает мне ошибку о шаблоне. .. Я новичок в этом, и я не понимаю, где я ошибся.

Если я выполнить код в моем источнике приложения ошибка консоли:

**GET http://localhost:8888/LABS_and_TRAINING/TEST/pgyo-test03/PgYoTest/src/app/scripts/templates.js 404 (Not Found) require.js:1880 
Uncaught Error: Script error for: templates 
http://requirejs.org/docs/errors.html#scripterror require.js:163** 

Если я выполнить код в дист, ошибка:

**Uncaught TypeError: Cannot call method 'template' of undefined** 

Здесь вы можете скачать src (без узлов) https://dl.dropboxusercontent.com/u/2637840/src.zip

+0

Вы должны опубликовать соответствующий код в своем вопросе, а не ссылаться на zip-файл. – mor

ответ

0

Проблема заключается в блоке определения в вашем AppView-view, где вы пытаетесь загрузить вызов файла ed templates.

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'templates',// there is no file called templates 
], function ($, _, Backbone, JST) { 
    'use strict'; 

Этот файл не присутствует, так что вы получите 404. Я предполагаю, что вы хотите загрузить handlebars вместо этого, чтобы вы определили в вашем requirejs.config блоке.

+0

Я думаю, что файл templates.js генерируется grunt во время сборки, в Gruntfile.js есть задача handlebars. Теперь, если я переведу сгенерированный templates.js из .tmp/script/folder в app/scripts, теперь ошибка похожа на встроенное приложение: Не удается вызвать метод «шаблон» неопределенного – pixlab

1

Я получал ошибку «Cannot call method 'template' of undefined» при просмотре сборки dist. Я столкнулся с решением, но не уверен, почему он работает.

Ваш RequireJS Shim для рулей должен выглядеть следующим образом

shim: { 
    handlebars: { 
    exports: 'Handlebars', 
    init: function() { 
     this.Handlebars = Handlebars; 
     return this.Handlebars; 
    } 
    } 
} 

Это решение является still being discussed, но он работает в настоящее время.