2013-04-30 2 views
1

У меня возникли проблемы с использованием canJS вместе с stealjs, я клонировал репо javascriptmvc (3.3 use canJS). Теперь я имею эту структуру папокStealJS и CanJS

/js 
    /can 
    /documentjs 
    /funcunit 
    /plugins 
    . 
    . 
    . 

В другой части моего заявления я имею в «автономный модуль» раскладка например (генерируется с помощью инструмента люльки). Загрузите этот модуль, используя «js/steal/steal.js? Path/to/module/layout« внутри моей страницы и работает. Если я украл некоторые JQuery плагинов (например, находится в главной папке JS) в моих layout.js так:

steal('plugins/jqueryplugin.js', 'plugins/jqueryplugin.css', function() { 
    // my code here 
}); 

он все еще работает, но когда я пытаюсь добавить в список «dependecies» некоторые компонент от "canJS" (даже fixture.js сгенерирован с помощью инструмента ... потому что он фиксирует can.fixture) он просто останавливается, чтобы работать и разрывает все. Я также пробовал использовать:

steal('that').then('this', function() {}); 

Но у меня такие же результаты ..... сбой !!! у кого есть какие-то намеки?

ответ

1

Хорошо, я нашел проблему. Там нет ничего плохого с stealjs и canjs, но

canjs просто загрузить свою собственную версию JQuery

, что нарушит мое заявление. Теперь мне нужно найти способ загрузки canjs и jquery отдельно (я использую yii, а некоторые расширения должны иметь jquery, загруженные в определенное время, так что не могу ждать canjs).

+0

Пожалуйста, отметьте свой ответ как принято :) –

0

Является ли проблема версией jQuery или порядком зависимостей?

Вы можете настроить steal через stealconfig.js для использования другой версии jQuery и управления любыми зависимостями.

Пример можно найти в GitHub репо: (этот пример не показывает зависимости, поэтому я добавил один ниже) https://github.com/bitovi/steal/blob/master/stealconfig.js

steal.config({ 
    map: { 
    "*": { 
    "jquery/jquery.js": "jquery", // Map to path 
    "bootstrap/bootstrap.js": "bootstrap", 
    "can/util/util.js": "can/util/jquery/jquery.js" 
    } 
    }, 
    paths: { 
    "jquery": "can/lib/jquery.1.8.3.js", // Path to jQuery 
    "bootstrap": "lib/bootstrap.js" 
    "yui/yui.js" : "can/lib/yui-3.7.3.js", 
    }, 
    shim : { 
    jquery: { 
     exports: "jQuery" 
    }, 
    bootstrap: { // A dependency example 
    'deps': ['jquery'] 
    } 
    }, 
    ext: { 
    js: "js", 
    css: "css", 
    less: "steal/less/less.js", 
    coffee: "steal/coffee/coffee.js", 
    ejs: "can/view/ejs/ejs.js", 
    mustache: "can/view/mustache/mustache.js" 
    } 
}); 

Примечание: это непроверенные пример, надеюсь, что это помогает.

0

У меня тоже была проблема с stealJs, я знал, что он хорошо работает с JavascriptMVC,
теперь я использую AMD requireJs для управления зависимостями, он отлично работает с canjs. вот документация http://canjs.com/guides/using-require.html, я надеюсь, что она вам поможет!