使用 requirejs 实例化 canjs 控制器时出错
Error in instantiating canjs controller using requirejs
我正在使用canjs,需要js来创建mvc应用程序。我对他们俩都是陌生的。
我创建了一个基本的js类--home.php并在home.php中加载了jquery,canjs和requirejs。
我有两个单独的文件夹,名为控制器和型号
在模型中 - home_m.js我有以下代码
var Description = can.Model.extend({
findAll: 'GET ../webService/ajax/ajax_router.php?q=desc',
create: 'POST ../webService/ajax/ajax_router.php',
update: 'PUT ../webService/ajax/ajax_router.php/{id}',
destroy: 'DELETE ../webService/ajax/ajax_router.php/{id}'
}, {});
在控制器中,我有home_c.js文件。代码如下
require(['../model/home_m'], function(homeModel){
var Descriptions = can.Control.extend({
'init': function(element, options){
var self = this;
console.log(self);
Description.findAll({}, function(des){
console.log(des);
});
}
});
});
终于在家里.js我有了这个代码
require(['../controller/home_c'], function(m, c) {
new Descriptions('#abc', {});
});
但这给出了错误——
我做错了什么。
引用错误:未定义说明
如果我在控制器/home_c.js中声明一个 var a = 5 并尝试提醒 home.js 文件中的值,那么它就可以工作了。canjs代码有问题吗?
谢谢
这不是CanJS的问题,而是AMD(和RequireJS)的工作方式。如果按如下方式定义模型和控件:
// models/home_m.js
define(['can/model'], function(Model) {
return Model.extend({
findAll: 'GET ../webService/ajax/ajax_router.php?q=desc',
create: 'POST ../webService/ajax/ajax_router.php',
update: 'PUT ../webService/ajax/ajax_router.php/{id}',
destroy: 'DELETE ../webService/ajax/ajax_router.php/{id}'
}, {});
});
// controller/home_c.js
define(['can/control', '../model/home_m'], function(Control, homeModel){
return Control.extend({
'init': function(element, options){
var self = this;
console.log(self);
Description.findAll({}, function(des){
console.log(des);
});
}
});
});
// home.js
require(['../controller/home_c'], function(Descriptions) {
new Descriptions('#abc', {});
});
事情应该按照他们应该的方式进行。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从 javascript 获取 MVC 控制器中的操作参数时出错
- 在 AngularJS 中将一个控制器注入另一个控制器时出错
- 使用 requirejs 实例化 canjs 控制器时出错
- 未知提供程序尝试在Angular控制器上注入依赖项时出错
- 试图在angularjs中使用控制器,当从app.js中取出控制器代码并放入控制器文件时出错
- 在控制器中注入服务时出错
- 使用示例服务在控制器之间传递数据时出错
- ajax请求动作控制器asp-mvc时出错