【问题标题】:How to resolve "Uncaught Error: Unable to parse bindings"?如何解决“未捕获的错误:无法解析绑定”?
【发布时间】:2013-08-19 10:35:26
【问题描述】:

在我的应用程序中,我成功地将 API 中的数据绑定到 ul。但是,我无法让 KO 调用绑定到 a 标记的单击事件的函数。我收到以下错误:

未捕获的错误:无法解析绑定。
消息:ReferenceError:未定义 loadContact;
绑定值:click: loadContact,attr: { title: 1}

查看代码:

<ul data-role="listview" id="ListSss" data-divider-theme="b" data-inset="true">
     <li data-role="list-divider" role="heading">
          Criteria Selected
      </li>
      <!-- ko foreach: Contacts  -->
      <li data-theme="c"> 
          <a href="#" data-transition="slide" data-bind="click: loadsss,attr: { title: sss }">
              <span data-bind="text: FName + ' ' + LName + ' (' + Classifiy +':'+ Position+ ')'" ></span>
          </a>
      </li>
    <!-- /ko -->
</ul>

JS代码:

  self.loadsss = function () {
       alert("hi");
    }

由于 foreach 中存在 href 链接,这就是为什么我无法触发 href 的点击事件?我哪里做错了?

【问题讨论】:

  • 可以添加视图模型吗?
  • 您可能在一些尚未发布的代码中犯了错误。您发布的代码(当扩展为sscce 时)将work just fine

标签: knockout.js single-page-application


【解决方案1】:

问题是,loadContact函数在for-loop内部使用,但loadContact函数是viewModel的一部分,而不是单个联系人的一部分。
请改用$parent.loadContact

  <a href="#" data-transition="slide" data-bind="click: $parent.loadContact,attr: { title: ContactID }">
      <span data-bind="text: FirstName + ' ' + LastName + ' (' + Classification +':'+ Position+ ')'" ></span>
  </a>

JSFiddle DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2017-09-13
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多