2015-07-08 1 views
-1

Я играю с pubnub и Meteor, и я имею в виду внешний файл js на стороне клиента и получение ошибок.Сторона со стороны Meteor Внешние Javascript Проблемы с файлом

Мой код ниже. Серверная сторона работает хорошо, однако клиентская сторона получает ошибку. «Uncaught TypeError: невозможно прочитать свойство« $ »неопределенного»

У меня это хорошо работает в nodejs, но вы хотите, чтобы он работал в Meteor. Спасибо, вытащили мои волосы на это.

if (Meteor.isClient) { 

    // counter starts at 0 
    Session.setDefault('counter', 0); 

    Template.hello.helpers({ 
    counter: function() { 
     return Session.get('counter'); 
    } 
    }); 

    Template.hello.events({ 
    'click button': function() { 
     // increment the counter when button is clicked 
     Session.set('counter', Session.get('counter') + 1); 
    } 
    }); 

    Template.hello.rendered = function(){ 

    $.getScript("http://cdn.pubnub.com/pubnub.min.js", function() { 
    //callbcak function 
     (function(){ 
     var output = PUBNUB.$('output'); 
     PUBNUB.subscribe({ 

      channel: 'my_channel', 
      callback: function(message){ 
      output.innerHTML += message; 
      } 
     }) 
     })(); 
    }) 
    }; 

} 

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    // code to run on server at startup 
    }); 

    var PUBNUB = Meteor.require('pubnub').init({}); 

    setInterval(function() { 
    PUBNUB.publish({ 
     channel: 'my_channel', 
     message: 'hello SMB' 
    }); 
    }, 1000); 
} 
+0

я должен также заявил, что ошибка в этой строке. var output = PUBNUB. $ ('output'); – Shawn

+0

ну, где вы определяете PUBNUB? вы, кажется, определяете его только на сервере. –

+0

PubNub определен в файле js. – Shawn

ответ

0

Похоже, что вы не инициализировали экземпляр!

var pubnub = PUBNUB({ 
    subscribe_key: 'your-sub-key', 
    publish_key: 'your-pub-key' 
}); 

Затем

pubnub.subscribe({...