【问题标题】:Breeze knockout value binding outputs a functionBreeze敲除值绑定输出函数
【发布时间】:2014-12-28 20:26:11
【问题描述】:

我正在对一个 odata 端点使用带有敲除的轻风,它给出了一些奇怪的结果。不过,希望我只是遗漏了一些明显的东西。

这是我的绑定表达式:

<input type="text" id="name" data-bind="value:organisation().name" />

其中organisationko.observable&lt;myEntity&gt;,而myEntity 有一个名为name 的属性。

文本框的值是一个函数,我认为它是可观察的(尽管它可能从读取输出时显示它实际上是一个计算...?:

function f(){if(0<arguments.length){if("function"===typeof O)O.apply(d,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}a.k.Jb(f);n&&k(!0);return q}

如果我将绑定表达式更改为value:organisation().name(),则会显示正确的值,但双向绑定会丢失并且不会反映更改。

希望我犯了一个常见的错误,周围的人可能会指出!

【问题讨论】:

  • 你能在这里发布你的“组织”模型代码吗?
  • 并非如此。我有一个接口,但这只是打字稿的东西,在运行时并不重要。据我了解,模型本身是由 Breeze 创建的
  • 需要复制。您应该能够创建一个迷你版本,一个模型的一个实体版本......例如组织实体......产生这种行为。元数据是关键。作为 jsfiddle 或 plunker 会很棒。

标签: javascript knockout.js typescript breeze


【解决方案1】:

如果你将它绑定到organistion().name(),那么knockout在“正常的js表达式”模式下工作,双向绑定将不起作用。

我真的不知道微风,但看起来您的“名称”可观察对象是一个对象的属性,它是您的“组织”可观察对象的值。尝试先使用“with”绑定绑定到外部,然后再绑定到内部。

像这样:

<!-- ko with:organization -->
<input data-bind="value:name"></input>
<!-- /ko -->

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2017-10-27
    • 2014-06-27
    • 2013-03-02
    相关资源
    最近更新 更多