在backbone.js项目中导入和使用javascript库
我是在backbone.js项目中导入和使用javascript库,javascript,backbone.js,Javascript,Backbone.js,我是backbone.js和require.js的新手。目前我创建了一个主干项目。 下面是app.jscode: define([ 'jquery', 'underscore', 'backbone', 'script', 'router' ], function($, _, Backbone, Script, Router){ var initialize = function(){ Router.initialize(); }; return {
backbone.js
和require.js
的新手。目前我创建了一个主干项目。
下面是app.js
code:
define([
'jquery',
'underscore',
'backbone',
'script',
'router'
], function($, _, Backbone, Script, Router){
var initialize = function(){
Router.initialize();
};
return {
initialize: initialize
};
});
这里是main.js
:
require.config({
path: {
jquery: 'libs/jquery/jquery-min',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
script: 'libs/scripts/index'
},
shim:{
backbone: ['jquery', 'underscore'],
script: ['jquery'],
enforceDefine: true
}
});
require([
'app',
], function(App){
App.initialize();
});
最后一个是router.js
:
define([
'jquery',
'underscore',
'backbone',
'script'
], function($, _, Backbone){
var AppRouter = Backbone.Router.extend({
routes:{
'*actions': 'defaultAction'
}
});
var initialize = function(){
var app_router = new AppRouter;
app_router('route:defultAction', function(actions){
});
Backbone.history.start();
};
return {
initialize: initialize
};
});
我想添加到我的项目中。如果在html项目中
,以下是我的代码:
<script type="text/javascript" src="jquery-min.js"></script>
<script type="text/javascript" src="jquery.json-2.4.min.js">
</script>
<script>
function serializeObjToJSON(_obj) {
var _json = $.toJSON(_obj);
return _json;
}
function deserializeJSONToObj(_json) {
var _obj = $.evalJSON(_json);
return _obj;
}
</script>
函数序列化objtojson(_obj){
var _json=$.toJSON(_obj);
返回json;
}
函数反序列化JSONTOBJ(_json){
var _obj=$.evalJSON(_json);
返回对象;
}
我想导入上面的库并在我的主干项目中使用它。但我不知道该怎么做
非常感谢您的帮助。在主JS中,您应该添加JSON引用。(将jquery.json-2.4.min.js放入lib/folder) 然后,您可以将其作为定义添加到app.js或引用中使用它的任何其他module.js文件中
define([
'jquery',
'underscore',
'backbone',
'script',
'router',
'json'
], function($, _, Backbone, Script, Router, Json){
//Code
}
然后在js文件中有对json的引用。你可以使用
Json.method()
例如。。一旦您编写json,它就会查找您的定义,然后为您调用的函数引用该库
因此,您的index.js或您想调用它的任何一端都需要以下内容:
define([
'jquery',
'underscore',
'backbone',
'script',
'router',
'json'
], function($, _, Backbone, Script, Router, Json){
serializeObjToJSON: function(_obj) {
var _json = Json.toJSON(_obj);
return _json;
}
deserializeJSONToObj: function(_jsonObject) {
var _returnObj = Json.evalJSON(_jsonObject);
return _returnObj;
}
你的意思是,我必须使用
$.Json.toJSON(_obj)代码>而不是$.toJSON(_obj)代码>?您可以在路由器中以与您正在引用的主干网.history.start()相同的方式引用该库
这样,您将不在HTML中引用该方法,而是在业务端/控制器中引用该方法var returnVar=Json.toJSON(_obj)
我想调用它,不是在控制器中,而是在我在那里编写全局函数的自定义js文件中。那我该怎么称呼它呢?我的index.js
文件中的示例,如上面的示例所示。我在答案中添加了一个带有函数的示例。这是一个很好的例子介绍你应该检查。
define([
'jquery',
'underscore',
'backbone',
'script',
'router',
'json'
], function($, _, Backbone, Script, Router, Json){
serializeObjToJSON: function(_obj) {
var _json = Json.toJSON(_obj);
return _json;
}
deserializeJSONToObj: function(_jsonObject) {
var _returnObj = Json.evalJSON(_jsonObject);
return _returnObj;
}