2013-07-24 4 views
3

Donc, il y a eu des questions similaires qui circulent, mais j'espère avoir une réponse à jour à ce sujet.Travailler avec breeze et requireJS

versions-

brise: 1.4.0 knock-out: 2.2.1 RequireJS: 2.1.5

Je suis en train de charger dans un jeu d'enfant avec projet requireJS knockoutJS. Notre config requireJS est très simple-

require.config({ 
    waitSeconds: 15, 
    paths: { 

     'templates': "/ist-common/templates", 
     'lib': '/ist-common/js/lib', 
     'ist': '/ist-common/js/ist' 
    } 

}); 

Je chargé la brise libs dans le répertoire suivant de

lib
----> q.js
----> brise. debug.js

Je suis en train de définir un module « dataservice » utiliser la brise et le mettre en place comme soi-

define(['lib/knockout', 'lib/q', 'lib/breeze.debug'], function (ko, Q, breeze) { 


    var serviceName = '/ist/rest'; // route to the endpoint 

    var manager = new breeze.EntityManager(serviceName); 
    manager.enableSaveQueuing(true); 


    var query = new EntityQuery("missions"); 
    manager.executeQuery(query, function(data) { 

     console.log("success"); 

    }); 


}); 

Cette configuration est-elle possible? J'essaye de garder mes étiquettes de scripts au minimum et de charger seulement requireJS, puis de charger knockout, jquery etc. comme j'en ai besoin dans mes définitions de modules.

Cette configuration échoue actuellement avec un message-

Error: Unable to initialize Q. See https://github.com/kriskowal/q

EDIT *

j'ai pu l'obtenir pour charger Q avec la configuration suivante pour exiger, mais cela se sent mal. Pourquoi devrais-je définir window.Q? Ne devrais-je pas être en mesure d'accéder à Q en tant que module nommé?

var require = { 
    waitSeconds: 15, 
    deps: ["/ist-common/js/lib/q.js"], 
    callback: function(Q){ 
     window.Q = Q; 
    }, 
    paths: { 

     'templates': "/ist-common/templates", 
     'lib': '/ist-common/js/lib', 
     'ist': '/ist-common/js/ist' 
    } 

}; 
+0

Quelle version utilisez-vous? (Breeze) –

+0

Édité avec versions- breeze: 1.4.0 Knockout: 2.2.1 RequireJS: 2.1.5 – thebringking

Répondre

1

Vous devez également une cale pour brise (de Using Angular with breeze and require)

breeze: { 
    deps: ['ko', 'jquery', 'Q'] 
}, 

Cela est nécessaire parce que même si la brise ne se définit elle ne définit pas ses dépendances, il les attend d'être là (RequireJs ne peut pas interpréter ses dépendances dans une variable au lieu d'une chaîne?).

La cale est également nécessaire parce que jQuery 'mais le code jQuery demandes de brise se définit comme « jquery »