标签: canjs-model

can-model无法从.json文件中获取数据

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

[            
"1":{"uid":     "1","urls": "domain1.abc.com"},
"2":{"uid":    "2","urls": "domain2.abc.com"},
"3":{"uid":    "3","urls": "domain3.abc.com"}
]
Run Code Online (Sandbox Code Playgroud)

这是我的domainModel:

define(['can'], function(can){
  SearchModel= can.Model({
     id: 'uid',
     findAll: 'GET /domains.json'
  },{})
  return SearchModel;
})
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

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;
} 
Run Code Online (Sandbox Code Playgroud)

这是我的主要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;
});
Run Code Online (Sandbox Code Playgroud)

我正在寻找我的代码.我把断点.在模型断点上我没有在chrome devtools中获取局部变量的值.

url属性具有'undefined/{id}'值,findAll方法具有四个属性,即参数,调用者,长度和名称,其值分别为null,null,0和""

我通过在浏览器上浏览localhost来检查我的模型网址,这是正确的.那么为什么模型无法获取json文件的值?

javascript json requirejs canjs canjs-model

9
推荐指数
1
解决办法
228
查看次数

CanJS Model findAll返回重复项的列表

can.Model用来检索数据id:

Invoice = can.Model({
    findAll: 'GET /invoices',
    create  : "POST /invoices",
    update  : "PUT /invoices/{id}",
    destroy : "DELETE /invoices/{id}"
},{});
Run Code Online (Sandbox Code Playgroud)

导航到时/invoices,结果如预期,如:

[
    0: {
         "ID": "1",
         "Client": "Client1",
    },
    1: {
         "ID": "2",
         "Client": "Client2"
    }
]
Run Code Online (Sandbox Code Playgroud)

但是,使用Invoice.findAll并记录到控制台的数据看起来像这样,并为列表中的每个元素重复相同的数据项:

[
    0: {
         "ID": "1",
         "Client": "Client1"
    },
    1: {
         "ID": "1",
         "Client": "Client1"
    }
]
Run Code Online (Sandbox Code Playgroud)

来自服务器的响应是正确的,那么为什么它被解释为相同项的列表?

javascript canjs canjs-model

4
推荐指数
1
解决办法
1553
查看次数

标签 统计

canjs ×2

canjs-model ×2

javascript ×2

json ×1

requirejs ×1