gpt4 book ai didi

backbone.js - requirejs 具有 Backbone 兼容性

转载 作者:行者123 更新时间:2023-12-02 22:17:56 24 4
gpt4 key购买 nike

下面的设置是让 backbone 与 requirejs 很好地配合的唯一方法——有没有更简洁的方法?无需每次都指定 Backbone 的完整路径?

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!doctype html>
<html lang="en">
<head>
<title></title>
<link href='<c:url value="/resources/css/bootstrap.min.css"/>'
rel="stylesheet" type="text/css" />
<script data-main="resources/js/main.js" src="resources/js/lib/require.js"></script>

</head>
<body>
<ul class="nav">
<li ><a href="#home">Home</a></li>
<li><a href="#rentals">Rentals</a>
<li><a href="#films">Films</a></li>
</ul>
</body>
</html>

主要.js

require.config({
baseUrl : '/sakila/resources/js',
paths : {
jquery : 'lib/jquery-1.8.3.min',
underscore : 'lib/underscore-min',
jqueryui : 'lib/jquery-ui-1.9.2.custom.min'
},
shim : {
'/sakila/resources/js/lib/backbone-min.js' : {
deps : [ 'underscore', 'jquery' ],
exports : 'Backbone'
}
}
});
require([ 'router' ], function(Router) {
Router.initialize();
});

路由器.js

define(['underscore','jquery','/sakila/resources/js/lib/backbone-min.js'],function(_,$,Backbone){
var AppRouter = Backbone.Router.extend({
routes : {
'home' : 'home',
'films' : 'films',
'rentals' : 'rentals',
'*actions' : 'home', // default action
'':'home'
},
home:function(){
console.log('Routed to home');
},
films:function(){
console.log('Routed to films');
},
rentals:function(){
console.log('Routed to rentals');
},

});
initialize = function() {
var app_router = new AppRouter();
Backbone.history.start();
console.log('history started');
};
return {initialize:initialize};

});

最佳答案

您可以在您的 requirejs 配置路径中为 Backbone 创建一个别名,并在您的 shim 中使用该别名。此外,您无需指定 Backbone 的完整路径,因为它符合配置中的 baseUrl 选项。

require.config({
baseUrl : '/sakila/resources/js',
paths : {
jquery : 'lib/jquery-1.8.3.min',
underscore : 'lib/underscore-min',
jqueryui : 'lib/jquery-ui-1.9.2.custom.min',
backbone : 'lib/backbone-min'
},
shim : {
backbone : {
deps : [ 'underscore', 'jquery' ],
exports : 'Backbone'
}
}
});

然后干净利落地用在别处。

define(['underscore','jquery','backbone'],function(_,$,Backbone){

})

关于backbone.js - requirejs 具有 Backbone 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com