我正在尝试在 canjs 中使用 AMD 实现 MVC。为此,我正在使用 requirejs。这是我的 domain.json 文件:
[
"1":{"uid": "1","urls": "domain1.abc.com"},
"2":{"uid": "2","urls": "domain2.abc.com"},
"3":{"uid": "3","urls": "domain3.abc.com"}
]
这是我的域模型:
define(['can'], function(can){
SearchModel= can.Model({
id: 'uid',
findAll: 'GET /domains.json'
},{})
return SearchModel;
})
这是我的控制器:
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;
}
这是我的主要js:
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;
});
我正在追踪我的代码。我放了断点。在模型断点上,我没有在 chrome devtools 的局部变量中获取值。
url 属性具有 'undefined/{id}' 值,findAll 方法具有四个属性,即 arguments、caller、length 和 name,其值分别为 null、null、0 和 ""
我已经通过浏览器上的 localhost 导航检查了我的模型 url,它是正确的。那么为什么模型无法获取 json 文件的值呢?