gpt4 book ai didi

twitter-bootstrap - 使用 RequireJS 在 Ladda 中未定义 Spinner

转载 作者:行者123 更新时间:2023-12-04 08:59:07 24 4
gpt4 key购买 nike

我正在尝试在 backbone 使用 require.js 以及 Bootstrap 组件呈现的页面上放置一个 ladda 按钮。然而,我得到了

"Uncaught ReferenceError: Spinner is not defined".

我从原来的 ladda.js 中切出缩小后的 spin.js 并将它们放在同一目录中。

Shim'ed ladda 如下:

require.config ({
paths: {
//jquery, underscore, backbone here
spin : 'libs/ladda/spin',
ladda: 'libs/ladda/ladda'
},

shim: {
ladda: {
deps: ['spin'],
exports: 'Ladda'
}
}
});

在主干 View 中:

define([
'jquery',
'underscore',
'backbone',
'bootstrap',
'spin',
'ladda',
], function($, _, Backbone, Bootstrap, Spinner, ladda){
render: function () {
//templating

console.log ('Spinner: ' + typeof Spinner);
Ladda.create ($('button'));
}
});

我可以看出 typeof Spinner 是一个函数。 Spinner.name 属性是“p”。 Spinner.name 不应该是“Spinner”而不是“p”吗?或者“p”继承自缩小变量?

为了让 Spinner 在 ladda.js 范围内可见,我错过了哪些其他步骤?感谢任何建议。

谢谢。

更新:感谢 Bass Jobsen 的建议,使用 hakimel committed spin.js,加载了 Spinner 但错误仍然存​​在。在 Chrome 开发工具控制台下方:

chrome devtool screenshot

最佳答案

基于 github.com/hakimel/Ladda/pull/7,我将 spin.js 重写为类似于 Ladda 本身的类。我使用 define 而不是 require ( http://bardevblog.wordpress.com/2013/01/05/re-learning-backbone-js-require-js-and-amd/ )。现在微调器也是一个对象。

Ladda.bind() 似乎不起作用(或者我不明白会发生什么)。您可以创建一个新的按钮对象:Ladda.create()

参见:http://plnkr.co/edit/DuIVFP0UP8sSoek9gEZc

//https://github.com/requirejs/example-jquery-cdn   
requirejs.config({
//"baseUrl": "js/lib",
enforceDefine: true,
"paths": {
"app": "app",
"jquery": "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min",
"spin": "spin",
"ladda": "ladda"
},
shim: {
"spin": {exports: "Spinner"},
"ladda": {
depends: "spin",
exports: "Ladda"
},



}
});

// Load the main app module to start the app
requirejs(["app/main"]);

app/main.js:

define(["jquery",'ladda','spin'], function($,ladda) {
//the jquery.alpha.js and jquery.beta.js plugins have been loaded.
$(function() {
console.log("$: " + typeof $);
console.log("ladda: " + typeof Ladda);
console.log("spin: " + typeof Spinner);

Ladda.bind($('button')[0]); //don't work ????????????
//return;
//Ladda.create('.ladda-button');
var l = Ladda.create($('button')[1]);

l.start();

// Will display a progress bar for 50% of the button width
l.setProgress( 5 );

// Stop loading
l.stop();

// Toggle between loading/not loading states
l.toggle();

// Check the current state
l.isLoading();


});
});

关于twitter-bootstrap - 使用 RequireJS 在 Ladda 中未定义 Spinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028138/

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