首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从.json文件中获取数据。

无法从.json文件中获取数据。
EN

Stack Overflow用户
提问于 2015-05-05 04:38:47
回答 1查看 234关注 0票数 9

我试图在canjs中使用AMD来实现MVC。为此,我使用的是需求。这是我的domains.json文件:

代码语言:javascript
复制
[            
"1":{"uid":     "1","urls": "domain1.abc.com"},
"2":{"uid":    "2","urls": "domain2.abc.com"},
"3":{"uid":    "3","urls": "domain3.abc.com"}
]

这是我的domainModel:

代码语言:javascript
复制
define(['can'], function(can){
  SearchModel= can.Model({
     id: 'uid',
     findAll: 'GET /domains.json'
  },{})
  return SearchModel;
})

这是我的控制器:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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;
});

我正在追踪我的代码,我把breakpoints.On模型断点放在铬devtools中的局部变量中,我没有得到值。

url属性具有‘未定义/{id}’值,findAll方法具有四个属性,即参数、调用方、长度和名称,分别为null、null、0和"“。

通过在浏览器上浏览本地主机,检查了模型的url,它是正确的。那么为什么模型不能获得json文件的值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-05 15:26:28

您应该得到一条错误消息,因为您的数据不是Model对findAll的期望。您的JSON应该是一个数组(或者至少有一个length属性):

代码语言:javascript
复制
[
  {"uid":     "1","urls": "domain1.abc.com"},
  {"uid":    "2","urls": "domain2.abc.com"},
  {"uid":    "3","urls": "domain3.abc.com"}
]

您还可能希望将id属性设置为SearchModel中的uid

代码语言:javascript
复制
define(['can'], function(can){
  SearchModel= can.Model({
     id: 'uid',
     findAll: 'GET /domains.json'
  },{})
  return SearchModel;
})
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30044402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档