【问题标题】:jsViews - error, while using data-linkjsViews - 错误,同时使用数据链接
【发布时间】:2014-05-12 14:43:29
【问题描述】:

我有以下脚本模板:

<script id="template" type="text/x-jsrender">
    <div>
        <label>Name</label>
        <input data-link="FirstName" type="text" />
    </div>


    <button>Search</button>
</script>

我使用以下命令触发 jsView:

$.templates("#template").link("#result", model);

model是js对象在哪里

function myModel() {
    this.FirstName = "";
}

很遗憾,link 命令出错:

TypeError: elem.dispatchEvent is not a function

可能出了什么问题?

【问题讨论】:

  • 使用 jquery noConflict 模式
  • 我试过了,但没有帮助。抛出了同样的错误。

标签: javascript jsrender jsviews


【解决方案1】:

这可能是您构建模型的方式吗?

例如,这不起作用(fiddle):

function myModel() {
    this.FirstName = "",
}
var model = myModel();
$.templates("#template").link("#result", model);

但这有效(fiddle):

var model= {
    FirstName : "",
}

$.templates("#template").link("#result", model);

就像这样 (fiddle):

function myModel() {
    this.FirstName = "",
}
var model = new myModel(); //<---the new keyword makes the difference
$.templates("#template").link("#result", model);

【讨论】:

  • 嗯.. 实际上模型是从 $.ajax 成功函数中得到的。这可能是一个解决方案,但我想避免将数据从 ajax 回调重写到自定义类。
  • 你在页面中使用prototype.js吗?
  • 没有。只有 jQUery 和 jsView。
  • 有没有机会在小提琴中重现问题?
  • 我的感觉和@BorisMoore 一样。当我查看 lib 代码时,我没有看到任何抛出“TypeError:elem.dispatchEvent 不是函数”异常的东西。这可能是浏览器的问题或某些 lib 冲突的结果(可能是推土机)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多