Knockout没有显示Observable Array?

时间:2013-11-29 20:17:14

标签: knockout.js

<h2>Friends</h2>
    <div data-bind="template: 'friendsTemplate'"></div>

        <script id="friendsTemplate" type="text/html">
            <ul>

              {{each friends }}
                <li>${ name }</li>
                {{/each}}
            </ul>

        </script>
    <script type="text/javascript">
        function friend(name) {
            this.name = ko.observable(name);
        }
        var ViewModel = {
            firstName: ko.observable("Chandan"),
            lastName: ko.observable("Khatwani"),
            friends: ko.observableArray([new friend("Amit"), new friend("Altamash")])
        };

        ViewModel.fullName = ko.dependentObservable(function () {
            return this.firstName() + " " + this.lastName();
        }, ViewModel);

        ko.applyBindings(ViewModel);
    </script>

好友列表不会呈现为列表

1 个答案:

答案 0 :(得分:0)

除非你使用的是非常旧版本的Knockout,否则你不需要引用除jQuery和Knockout之外的任何东西。有两种解决方案,有模板或不带模板。

WITH TEMPLATE 您只需要以正确的方式使用template binding即可。你的代码应该是这样的;

<ul data-bind="template: { name: 'friendsTemplate', foreach: friends }"></ul>

<script id="friendsTemplate" type="text/html">
    <li data-bind="text: name"></li>
</script>

没有模板更简单的方法......

<ul data-bind="foreach: friends">
    <li data-bind="text: name"></li>
</ul>