Javascript 未定义不是canjs中的函数
我正在尝试使用带有ejs模板引擎的html文件中的canjs从json数组获取数据 但当我在浏览器上加载html文件时,它显示了一个错误:“Undefined不是一个函数” 这是我的todo.jsJavascript 未定义不是canjs中的函数,javascript,ejs,canjs,Javascript,Ejs,Canjs,我正在尝试使用带有ejs模板引擎的html文件中的canjs从json数组获取数据 但当我在浏览器上加载html文件时,它显示了一个错误:“Undefined不是一个函数” 这是我的todo.js var Todo=can.Model({ findall:“GET/todos”, findone:'GET/todos{id}', 创建:“发布/待办事项”, 更新:“PUT/todos/{id}”, 删除:“DELETE/todos/{id}” },{}) (功能(){ var TODOS=[{
var Todo=can.Model({
findall:“GET/todos”,
findone:'GET/todos{id}',
创建:“发布/待办事项”,
更新:“PUT/todos/{id}”,
删除:“DELETE/todos/{id}”
},{})
(功能(){
var TODOS=[{id:1,名称:'Dipesh'},
{id:2,名字:'John'},
{id:3,名字:'约瑟夫'}];
fixture(“DELETE/todos/{id}”,函数(请求){
返回{};
});
can.fixture(“PUT/todos/{id)”,函数(请求){
$.extend(TODOS[(+request.data.id)-1],request.data);
返回{};
});
can.fixture(“POST/todos”,功能(请求){
var id=TODOS.length+1;
push($.extend({id:id},request.data));
返回{id:id,name:request.data};
});
can.fixture(“GET/todos”,函数(请求){
返回待办事项;
});
fixture(“GET/todos/{id}”,函数(请求){
返回TODOS[(+request.data.id)-1];
});
})();
findall({},函数(todos){
var frag=can.view('todosEJS',todos)
document.getElementById(“todos”)
.儿童(frag);
})
方法有findAll
和findOne
。请尝试以下方法:
var Todo = can.Model({
findAll : 'GET /todos',
findOne : 'GET /todos{id}',
create : 'POST /todos',
update : 'PUT /todos/{id}',
remove : 'DELETE /todos/{id}'
}, {});
两件事:
- can.Model上的静态方法是findAll和findOne,而不是findAll和findOne
- fixture URL在HTTP谓词和URL之间应该有一个空格。因此“POST/todos”应该是“POST/todos”
- PUT的夹具缺少匹配的}。它应该是“PUT/todos/{id}”
下面是您处理jsbin的示例:我遇到了相同的错误。包括can.ejs.js,错误将得到解决。
从下载can.ejs.js,确保将所有出现的
findall
替换为findall
。在HTTP方法和URL之间放置一个空格,如POST/todos
。它提供了整个循环逻辑。like EJS不包含在核心CanJS中。这是一个你必须包含的插件。因此,要么包含can.ejs.js,要么使用canjs.com上的下载生成器来构建自定义包。Mustache是canjs中的默认模板引擎。我也收到了相同的错误!不确定是否缺少任何其他库。