2013-03-03 30 views
5

Tôi đang cố gắng sử dụng requirejs để tải knockoutjs ở sau cách:ko không được định nghĩa với requirejs

<script type="text/javascript"> 
    require(['scripts/knockout-2.2.1.debug'], function() { 
     var someModel = { 
      firstname: ko.observable('asd') 
     }; 
     ko.applyBindings(someModel); 
    }); 
</script> 

đâu require.js được nạp bằng cách sử dụng Tag Script trên đầu trang. Khi mã này thực hiện, tôi nhận được lỗi ko được xác định. Cách chính xác để làm tương tự là gì?

+2

thế nào về 'chức năng (ko) {.....' – HungryCoder

+0

Cảm ơn HungryCoder .. Nó giải quyết vấn đề này. Thật không may, tôi không thể đánh dấu một bình luận như là một câu trả lời nhưng nó là. – helloworld

+0

Chỉ tò mò - logic bên dưới là gì? Nếu tôi bao gồm 4 thư viện theo yêu cầu, tôi sẽ phải thêm 4 tham số để sử dụng chúng? Ngoài ra, nếu tôi chỉ bao gồm 2 thẻ script trên trang - một cho requirejs và khác cho knockoutjs (theo thứ tự và không có mã nào khác trên trang), nó sẽ phát ra lỗi. Có phải là do chỉ cần thêm requirejs, nó xung đột với các thẻ tập lệnh sau đây? Vấn đề của tôi được giải quyết nhưng tuyệt vời nếu có ai có thể xóa bỏ sự nhầm lẫn của tôi. – helloworld

Trả lời

5
require(['scripts/knockout-2.2.1.debug'], function(ko) { 

Tôi không chắc chắn nhưng nhìn thấy ví dụ về requirejs, tôi đoán chúng được tải bên trong phạm vi chức năng gọi lại đó. Vì vậy, trừ khi bạn chấp nhận điều đó trong chức năng của bạn, bạn không thể sử dụng nó.

Có, bạn nói đúng (ít nhất, nhìn thấy ngoại lệ của chúng). nếu bạn có 4 thư viện, bạn cần chấp nhận 4 tham số. Ví dụ, nếu bạn nạp jquery và loại trực tiếp, bạn có thể viết nó như sau:

require(['scripts/jquery.js', 'scripts/knockout-2.2.1.debug'], function($, ko) { 
Các vấn đề liên quan