J'ai un peu de mal à obtenir sammyjs pour jouer avec requirejs. L'appel $.sammy
échoue et l'erreur indique que sammy n'est pas défini dans l'espace de noms jQuery.Utiliser SammyJs avec RequireJs
Voici mon besoin config
require.config
baseUrl: '/Scripts'
waitSeconds: 10
paths:
bootstrap: './lib/bootstrap/bootstrap'
domReady: './lib/domReady/domReady'
knockout: './lib/knockout/knockout-2.2.1.debug'
jquery: './lib/jquery/jquery-1.9.1'
sammy: './lib/sammy/sammy-0.7.4'
myPage: './app/pages/myPage'
myViewModel: './app/viewModels/myViewModel'
shim:
bootstrap:
deps: ["jquery"]
sammy:
deps: ["jquery"]
exports: "Sammy"
Voici ma page javascript
require ['knockout', 'myViewModel', 'domReady!' ], (ko, viewModel) ->
myViewModel = new viewModel
ko.applyBindings(myViewModel)
Voilà mon avis modèle
define [ 'jquery', 'sammy', 'knockout' ], ($, sammy, ko) ->
class myViewModel
constructor: (options) ->
self = @
@sammypath = ko.observable(1)
@router = $.sammy(->
@get '#/', (data) ->
self.sammypath(1)
)
@router.run()
Cependant, je reçois une erreur lorsque je tente d'appeler $.sammy
Uncaught TypeError: Object function (selector, context)
{ // The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context, rootjQuery); }
has no method 'sammy'
Je suppose que c'est quelque chose qui ne va pas avec le require.config
mais pour être honnête, je ne suis pas sûr.
Le fichier sammy-0.7.4.js
est téléchargé correctement.
Le sammy qui est passé à travers la définir dans le modèle de vue est non nul
Je coincé un point de rupture sur le fichier sammy et il Reçoit et reconnaît qu'il est un module AMD. Je ne suis pas sûr pourquoi il ne s'ajoute pas à l'espace de noms jQuery.
J'ai vérifié deux fois que la page a été chargée correctement en premier, mais le module domReady s'occupe de cela. J'utilise aussi coffeescript mais je ne pense pas que cela devrait poser problème.