【问题标题】:Show value using knockout使用淘汰赛显示价值
【发布时间】:2014-12-06 20:23:53
【问题描述】:

我正在调用一个使用以下操作返回 JSON 对象的操作

public async Task<JsonResult> GetProjects(int companyId) { }

用javascript写下面的句子:

data.Name

我可以从对象中看到正确的值,但是当我尝试通过敲除使用它的值时,我得到了一个奇怪的值:

<h2 id="companyName" data-bind="text: companyName"></h2>

调用动作的代码如下:

$.get('Projects/GetProjects?companyId=' + param, function (data) {        
        ko.applyBindings(data);
        $('#detailsModal').foundation('reveal', 'open');

"[对象 HTMLHeadingElement]"

我做错了什么?

【问题讨论】:

  • 您应该提供更多信息:什么函数调用/变量准确输出[object HTMLHeadingElement]?你如何从data.NamecompanyName(JSON 传输)?后者是计算属性吗?其余的代码在哪里?为什么这个问题被标记为 asp.net & c#?
  • @Tyblitz 我刚刚更新了代码。我将其标记为 asp.net-mvc,因为我正在调用返回 json 对象的 c# mvc 控制器

标签: javascript c# asp.net-mvc json knockout.js


【解决方案1】:

首先,您将HTMLHeadingElement 绑定到一个h2,它本身就是一个HTMLHeadingElement

如果你记录这个:

console.log(companyName.outerHTML);

你会得到一个接近"&lt;h2&gt;ACME Corporation&lt;/h2&gt;"的字符串

所以我猜这个错误来自你在存储数据时的前期工作。您可以将companyName 转换为其文本值在将其存储到数据库时

HTMLHeadingElementNode 继承属性,因此您可以访问textContent 属性,这正是您要查找的。​​p>

// Pseudo code: before storing your project
project.companyName = source.companyName.textContent
project.save()

如果你不想/不能做这个前期工作,那么你可以在绑定你的值的同时做这个。

<h2 id="companyName" data-bind="text: companyName.textContent"></h2>

【讨论】:

    猜你喜欢
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2016-02-27
    • 1970-01-01
    • 2019-01-07
    • 2015-05-24
    相关资源
    最近更新 更多