【问题标题】:Knockout binding with JQuery templating is not showing data?与 JQuery 模板的淘汰赛绑定不显示数据?
【发布时间】:2014-07-23 19:13:15
【问题描述】:

我对 Knockout 非常陌生,作为学习练习,我正在尝试使用 JQuery 模板进行淘汰赛绑定(如果我提到错误的术语,我深表歉意)

请看这个链接:http://jsfiddle.net/Yawer/7xvgJ/1/

这是我的代码:

JS:

  var data = [
    { Id: 1, Name: "Jim" },
    { Id: 2, Name: "Bilal" },
    { Id: 3, Name: "Hussain" },
    { Id: 4, Name: "Hassan" }
];

var viewModel = function () {
    var self = this;
    //data
    self.tags = ko.observableArray(data);
    self.tagToAdd = ko.observable();

    //behaviour
    self.addTag = function () {
        self.tags.push({ Name: self.tagToAdd() });
    };

};

$(function () { 
    var vm = new viewModel();
    ko.applyBindings(vm);

});

HTML:

    <div data-bind="template: 'tagsTemp'">
</div>
<script id="tagsTemp" type="text/html">

        {{each tags}}

            <span>${Name}</span>



        {{/each}}

</script>

我期待的是名字列表,但我得到的是代码而不是名字:

{{each tags}} ${Name} {{/each}} 

请指导我在代码中哪里出错。我了解 Knockout 绑定可以通过不同的方式完成,但我需要使用 Jquery 模板。请帮忙

【问题讨论】:

    标签: jquery knockout.js knockout-2.0 jquery-templates


    【解决方案1】:

    首先:您不应该使用 jquery.tmpl 支持,因为不再维护该库。原生 KO 模板引擎足以满足 95% 的用例。

    第二:虽然 KO 支持 jquery.tmpl 开箱即用你仍然需要引用 jquery.tmpl library 本身。

    来自documentation

    默认情况下,Knockout 支持 jquery.tmpl。要使用它, 您需要按以下顺序引用以下库:

    <!-- First jQuery -->     <script src="jquery-1.7.1.min.js"></script>
    <!-- Then jQuery.tmpl --> <script src="jquery.tmpl.js"></script>
    <!-- Then Knockout -->    <script src="knockout-x.y.z.js"></script>
    

    这是您的JSFiddle,并添加了缺少的参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 2016-02-27
      • 2016-11-14
      • 2015-09-26
      • 1970-01-01
      • 2013-12-30
      • 2014-08-01
      相关资源
      最近更新 更多