Javascript Knockout.js-不使用参数时输出函数文本的数据绑定

Javascript Knockout.js-不使用参数时输出函数文本的数据绑定,javascript,knockout.js,Javascript,Knockout.js,我是一个新手,一直在尝试遵循代码示例和文档,但不断遇到问题。我的数据绑定打印的是敲除可观察函数,而不是我的可观察字段所持有的实际值。如果我使用计算字段,则可以获得该值,但如果这样做,则不会获得任何实时数据绑定/更新 下面是我的项目中与我描述的问题直接相关的一些代码片段: HTML 正在更新LinkedIn的totalcount属性 在中,我希望看到一个介于0-Integer.MAX之间的数字。相反,我看到的是: 如您所见,它输出的是敲除函数本身,而不是函数的值。我看到的每个代码示例,包括官方文

我是一个新手,一直在尝试遵循代码示例和文档,但不断遇到问题。我的数据绑定打印的是敲除可观察函数,而不是我的可观察字段所持有的实际值。如果我使用计算字段,则可以获得该值,但如果这样做,则不会获得任何实时数据绑定/更新

下面是我的项目中与我描述的问题直接相关的一些代码片段:

HTML

正在更新LinkedIn的totalcount属性

在中,我希望看到一个介于0-Integer.MAX之间的数字。相反,我看到的是:


如您所见,它输出的是敲除函数本身,而不是函数的值。我看到的每个代码示例,包括官方文档中的示例,都说我应该看到值,而不是函数。我做错了什么?如果需要,我可以提供完整的应用程序代码。

不确定,但KO视图模型显然倾向于绑定自己的,而不是通过原型继承的可观察属性。因此,您应该重写代码,分别为每个社交网络提供totalCount observable。

是的,我会创建一个plunker或显示您的所有代码,如果您使用该字段进行评估,您仍将获得实时绑定,但在这种情况下不需要它。如果你在做类似的事情,你需要对它进行评估。没有JSFIDLE,很难找出代码的错误
<div class="col-xs-6">
   <div data-bind="foreach: leftColSocialAPIs">
      <div class="social-metric">
         <img data-bind="attr: { src: iconPath }" /> 
         <strong data-bind="text: name"></strong>:
         <span data-bind="text: totalCount"></span>
      </div>
   </div>
</div>
var SocialAPI = (function (_super) {
__extends(SocialAPI, _super);
function SocialAPI(json) {
    _super.call(this, json);
    this.totalCount = ko.observable(0);
    this.templateName = "social-template";
}
SocialAPI.prototype.querySuccess = function () {
    this.isLoaded(true);
    appManager.increaseBadgeCount(this.totalCount());
    ga('send', 'event', 'API Load', 'API Load - ' + this.name, appManager.getRedactedURL());
};
SocialAPI.prototype.toJSON = function () {
    var self = this;
    return {
        name: self.name,
        isActive: self.isActive(),
        type: "social"
    };
};
return SocialAPI;
})(API);
var LinkedIn = (function (_super) {
__extends(LinkedIn, _super);
function LinkedIn(json) {
    json.name = "LinkedIn";
    json.iconPath = "/images/icons/linkedin-16x16.png";
    _super.call(this, json);
}
LinkedIn.prototype.queryData = function () {
    this.isLoaded(false);
    this.totalCount(0);
    $.get("http://www.linkedin.com/countserv/count/share", { "url": appManager.getURL(), "format": "json" }, this.queryCallback.bind(this), "json").fail(this.queryFail.bind(this));
};
LinkedIn.prototype.queryCallback = function (results) {
    if (results != undefined) {
        results.count = parseInt(results.count);
        this.totalCount(isNaN(results.count) ? 0 : results.count);
    }
    this.querySuccess();
};
return LinkedIn;
})(SocialAPI);