2013-03-29 30 views
15

Tôi muốn thêm sử dụng http://exacttarget.github.com/fuelux/ để tạo một DataGrid. Tôi muốn thêm thư viện để sử dụng nó. Tôi đã làm như sau:Tham chiếuMỗi: xác định không được xác định trong khi nhúng Fuelux vào datagrid.js

<link href="<spring:url value='/assets/css/fuelux.min.css' htmlEscape='true' />"  media="all" rel="stylesheet" type="text/css" /> 
<link href="<spring:url value='/assets/css/fuelux-responsive.min.css' htmlEscape='true' />" media="all" rel="stylesheet" type="text/css" /> 
<script src="<spring:url value='/assets/js/fuelux-datagrid.js' htmlEscape='true' />" type="text/javascript"></script> 

Tôi chắc chắn rằng đường dẫn là chính xác vì chúng hoạt động trong các thư viện khác. Tuy nhiên, tôi nhận được lỗi sau:

ReferenceError: define is not defined 
[Break On This Error] 
define(['require','jquery'],function(require) { 

nơi define(['require','jquery'],function(require) {... là mã trong fuelux-datagrid.js.

  • Lỗi này là gì?
  • Tôi nghĩ rằng define là từ khóa là require.js. Điều này có nghĩa là fuelux-datagrid có phụ thuộc vào require.js?
  • Ai đó có thể giải thích cho tôi cách tải thư viện để nó hoạt động không?

Trả lời

10

Nếu bạn không sử dụng RequireJS bạn có thể làm được việc này bằng cách tải chỉ là loader.min.js trong một thẻ script cơ bản:

<script src="http://fuelcdn.com/fuelux/2.3/loader.min.js"></script> 

Gói này chứa tất cả các JavaScript cần thiết cho Bootstrap và Fuel UX, không phụ thuộc vào bộ tải AMD.

+0

Tôi có lẽ đã làm rõ nhu cầu tải jQuery trước khi thực hiện việc này. Xin lỗi cho bất cứ ai đã bị vấp ngã bởi điều đó! –

+0

Adam, tôi đang cố gắng sử dụng phần wizard.js của FuelUX (không phải AMD). Tôi đang tải fuelux.min.css, jquery-2.1.0.min.js, loader.min.js và wizard.js (theo thứ tự đó) và vẫn nhận được định nghĩa không được xác định. Tui bỏ lỡ điều gì vậy? – RHarris

+0

Loader.min.js chứa tất cả các điều khiển, bao gồm cả trình hướng dẫn. Lỗi bạn đang nhìn thấy có thể được giới thiệu bởi trình bao bọc AMD trong wizard.js. Bạn có thể xóa tệp đó vì logic được chứa trong loader.min.js. Hãy lưu ý, các chiến lược tải UX Nhiên liệu có thể sẽ thay đổi cho phiên bản 3 của thư viện. –

3

Có, chúng dường như có sự phụ thuộc vào RequireJS. Tôi phải đồng ý rằng họ không có nhiều tài nguyên giải thích cách tải thư viện (ít nhất là từ những gì tôi thấy), nhưng những gì tôi sẽ làm là tải require.js và kiểm tra những tài nguyên khác mà nó đang cố tải sau đó, bằng cách tìm kiếm tại các yêu cầu mạng.

Dưới đây là ví dụ về cách thiết lập RequireJS. Bạn cũng có thể xem their docs.

<script src="scripts/require.js"></script> 
<script> 
    require.config({ 
    baseUrl: "/another/path", //here's where it will look for scripts 
    paths: { 
     "some": "some/v1.0" //path to other dependencies not located in the base path 
    } 
    }); 
</script> 
12

này đã làm việc cho tôi:

<script src="https://raw.github.com/ExactTarget/fuelux/master/lib/require.js"></script> 
<script type="text/javascript" src="https://raw.github.com/ExactTarget/fuelux/master/dist/datagrid.js"></script> 

tôi đã cố gắng những gì @AdamAlexander gợi ý và những gì được đề nghị here và đã không làm việc. Tôi cũng đã thử các yêu cầu mới nhất và có ngoại lệ khó chịu. Đi con số.

+0

Cảm ơn. Điều này cũng làm việc cho tôi. Cảm ơn rất nhiều. Và, câu trả lời của người khác cũng hữu ích. – Lasang

+0

Đối với những gì nó có giá trị, tôi đã có thể nhận được các hướng dẫn ExactTarget được liên kết (ví dụ: chỉ jQuery và trình tải của chúng) để hoạt động. Ban đầu tôi không tìm thấy những gì tôi đã bỏ lỡ là một phần tử có một lớp "fuelux" trong DOM bên trên thành phần mà tôi đang cố gắng xây dựng. http://jsfiddle.net/LeCodeNinja/FdpVL/ –

+0

Điều này gần như làm việc cho tôi, nhưng require.js đã được trả về là 'text/plain' do đó không chạy như js.Tôi đã thay đổi raw.github thành rawgithub trong URL, như đã đề cập ở đây: http://webmasters.stackexchange.com/a/51708 –

Các vấn đề liên quan