To naprawdę mnie myli, myślę, że jestem głupi, ale przeszukałem i zrobiłem, co mogłem. Ilekroć deklaruję widok i uruchamiam test BDD jaśminem, zawsze zwraca on "niezdefiniowany nie jest funkcją". Jest to kodWidok kręgosłupa - nie jest zdefiniowany
window.LocationView = Backbone.View.extend({
initialize: function() {
// create new marker first
this.marker = new google.maps.Marker({
title: this.model.get('name'),
draggable: true,
animation: google.maps.Animation.DROP,
position: new google.maps.LatLng(this.model.get('lat'), this.model.get('long')), // give the position here
});
// bind events
this.model.bind('change', this.render, this);
},
render: function() {
this.marker.setTitle(this.model.get("name"));
this.marker.setPosition(new google.maps.LatLng(this.model.get('lat'), this.model.get('long')));
},
});
Tak właśnie ogłosił go:
this.view = new LocationView({model: this.location});
this.view = new LocationView();
// neither of these ones work.
Jest to błąd, gdy uruchomię tego kodu z jaśminu:
TypeError: undefined is not a function
at [object Object].make (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:29:37)
at [object Object]._ensureElement (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:30:270)
at [object Object].<anonymous> (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:28:127)
at new <anonymous> (http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js:32:136)
at [object Object].<anonymous> (http://localhost/gmap_api/public/test/spec/specs.js:62:21)
at [object Object].execute (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1001:15)
at [object Object].next_ (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1790:31)
at [object Object].start (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1743:8)
at [object Object].execute (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:2070:14)
at [object Object].next_ (http://localhost/gmap_api/public/test/spec/jasmine/jasmine.js:1790:31)
Nie jestem pewien, co oznacza "deklarowanie widoku, a następnie deklarowanie nowego widoku". Czy tworzysz instancję jednego LocationView, a następnie drugiego LocationView? Pierwszy jest w porządku, ale drugi nie jest? Czy też 'new LocationView ({model: this.location})' działa, ale 'new LocationView();' nie robi? –
@muistooshort: Przepraszam za zły angielski, naprawię to. Oznacza to, że monituje mnie, że LocationView nie jest definiowany za każdym razem, chociaż oświadczyłem to? – nXqd