【问题标题】:"placeholder” attribute using knockout - JSON使用淘汰赛的“占位符”属性 - JSON
【发布时间】:2015-08-11 08:18:15
【问题描述】:

我想使用 data-bind 的占位符属性,但我有一条错误消息([object object])。请告诉我如何使用它。

html:

input id="comments" class="form-control" 
data-bind="attr: { placeholder: { locale: 'placeholder.comments', auth: false } }"

json:

"placeholder": {
    "comments": "Tell us..."
}

【问题讨论】:

  • 您可以将 JSON 'cmets' 存储在名为 'comment' 的 ko.observable() 中并像这样添加它,输入 id="cmets" class="form-control" data-bind= “属性:{占位符:评论}”
  • 我知道我可以存储在 js 文件中,但我想调用 json 文本,因为它不仅仅是一个数据。谢谢。
  • 它适用于文本字段,但不适用于占位符部分。输入 id="cmets" class="form-control" data-bind=" locale: 'placeholder.cmets'"
  • data-bind=" locale: 'placeholder.cmets'" 自定义 bindingHandler 吗?
  • 是的,它是一个自定义的bindingHandler。

标签: javascript html json knockout.js


【解决方案1】:

占位符属性应该是一个字符串(ko.observable),而不是一个对象。

<input data-bind="attr:{placeholder:hintText}" />

简单示例: http://jsfiddle.net/xtdL7om1/

【讨论】:

    【解决方案2】:

    你可以像这样创建一个 bindingHandlers:

    ko.bindingHandlers.placeholder = {
        init: function (element, valueAccessor) {
            var observable = valueAccessor();
            ko.applyBindingsToNode(element, { attr: { placeholder: observable } });
        }
    };
    

    你必须在 HTML 中这样使用

    <input id="test" data-bind="placeholder: yourPlaceHorder, textInput: yourValueInput" />
    

    【讨论】:

      【解决方案3】:
      <input widgetLocaleText: {value:'nameOnCardPlaceholder', attr:'placeholder'},
      

      【讨论】:

      • 欢迎来到 StackOverflow。虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将提高​​答案的长期价值。
      猜你喜欢
      • 2012-09-20
      • 2012-06-06
      • 2014-09-28
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2013-03-27
      相关资源
      最近更新 更多