Ich versuche MVC mit AMD in Canjs zu implementieren. Dafür benutze ich requirejs. Das ist mein domains.json Datei:can-model kann keine Daten von .json-Datei bekommen
[
"1":{"uid": "1","urls": "domain1.abc.com"},
"2":{"uid": "2","urls": "domain2.abc.com"},
"3":{"uid": "3","urls": "domain3.abc.com"}
]
Das ist mein domainModel ist:
define(['can'], function(can){
SearchModel= can.Model({
id: 'uid',
findAll: 'GET /domains.json'
},{})
return SearchModel;
})
Dies ist mein Controller:
define(['can','jquery'],function(can,$){
domainController=can.Control({defaults:{view:"../view/search.hbs" }},
{
init : function(element,options){
this.element.html(can.view(this.options.view,{
searchlist : this.options.search
}))
}
});
return domainController;
}
Das ist mein Haupt js ist:
equirejs(['can','controller/domainController','model/domainModel'],
function(can, domainController,domainModel) {
var Application = can.Control.extend({
defaults :{ }
},{
init: function(element,options){
console.log('loaded');
domainModel.findAll({}, function(domains){
domainObject:{searchdomains : domains}
new domainController('#search',domainObject)
});
}
})
return Application;
});
Ich bin Trac Ich setze Breakpoints.Auf Model Breakpoints bekomme ich keine Werte in lokalen Variablen in Chrome Devtools.
Die Eigenschaft url hat ‚undefined/{id}‘ Wert und findAll Verfahren mit vier Eigenschaften Argumente dh Anrufer, Länge und Name Wert null aufweist, null, 0 und „“ jeweils
Ich habe überprüft meine URL des Modells durch Navigieren durch localhost im Browser und es ist korrekt. Warum kann dann das Modell die Werte der JSON-Datei nicht bekommen?
Objektnamen erinnern kann nicht mit starten eine Zahl, also in der Datei domains.json, ändern Sie die Namen von 1, 2, 3 in etwas wie "eins", "zwei", "drei". Es ist in Ordnung, einen json mit Objektnamen zu erstellen, die mit Ganzzahlen beginnen, aber wenn Sie versuchen, auf diese Objekte in js zuzugreifen, wird es nicht richtig funktionieren. [gültige JS-Variablennamen] (https://mathiasbynens.be/notes/javascript-identifiers) –