如何将`console.log`与knockout结合使用并使用Knockoutjs订阅?

时间:2011-12-15 07:28:45

标签: javascript javascript-events console knockout.js

我第一次使用Knockoutjs,因为我无法在控制台中记录变量而无法进行调试。当我输入时,我可以看到我的JS正在控制台中正确加载:

Home.TwitterFeedComponent我看到object已退回。如何将console.log与knockout和subscribe结合使用?

 var Home = Home || {};

var inheriting = inheriting || {};

Home.TwitterFeedComponent = function(attributes) {
  if (arguments[0] === inheriting)
    return;
  Home.OnScreenComponent.call(this, attributes);

  var component = this;  
  var recent_tweets = ko.observableArray();
  var url = 'https://twitter.com/search.json?callback=?';

  this.attributes.twitter_user_handle.subscribe(function(value) {

    var twitter_parameters = {
      include_entities: true,
      include_rts: true,
      from: value,
      q: value,
      count: '3'
    }

    result = function getTweets(){
       $.getJSON(url,twitter_parameters, 
       function(json) {
           console.log(json)
       });
     }  

     console.log(twitter_parameters);

 });
};

Home.TwitterFeedComponent.prototype = new Home.OnScreenComponent(inheriting);
Home.TwitterFeedComponent.prototype.constructor = Home.TwitterFeedComponent;

2 个答案:

答案 0 :(得分:1)

我没有在您的代码中看到问题,但如果您想记录“可观察性”,则必须按如下方式记录:

console.log(observableVar());

答案 1 :(得分:-1)

我对问题的确切范围有点不清楚 - 但是,如果像我一样,这个问题是针对在您的HTML中使用console.log的。

以下是一些可能有用的代码:

<div class="tab-content" data-bind="with: ClientSearch.selectedClient">

...

<table class="table table-striped table-condensed table-hover">
    <thead></thead>
    <tbody>
        <!-- ko foreach: { data: _general, as: 'item' } -->
        <tr>
            <td data-bind="text: eval( 'console.log(\' le item \', item)' )"></td>
        </tr>
        <!-- /ko -->
    </tbody>
</table>

...

</div>

此代码只是将foreach内的项目记录到控制台。

希望这有帮助!