Knockoutjs无法解析绑定。消息:SyntaxError:意外的令牌};

时间:2012-12-01 22:00:00

标签: javascript knockout.js knockout-mapping-plugin

这是example
我尽可能地简化了它,但我仍然无法理解我错在哪里 请帮帮我))

P.S stackoverflow需要一个代码,而不只是链接到jsfiddle,所以就是这样:
HTML:

<form action="" method="GET" data-bind="FacebookContacts">
    <table class="importContacts table import">
        <thead>
            <tr>
                <td></td>
                <td>Photo</td>
                <td>Name</td>
                <td>Login</td>
            </tr>
        </thead>
        <tbody data-bind="foreach: contacts">
            <tr>
                <td>
                    <span data-bind="text:FullName"></span>
                </td>
                <td>

                </td>
                <td>

                </td>
                <td>

                </td>
            </tr>
        </tbody>
    </table>
</form>​

的javascript:

var FacebookContactsViewModel = function () {
        var _self = this;
        _self.FacebookContacts = ko.observable();
        _self.GetData = function() {
            var localData=ko.mapping.fromJS(JSON.parse(contacts));
            _self.FacebookContacts(localData);
            ko.applyBindings(_self);
        };
    _self.GetData();
};
var contacts='{"contacts":[{"FullName":"Petr Perelygin"}]}';
var vm = new FacebookContactsViewModel();​

1 个答案:

答案 0 :(得分:2)

请看一下这里,让您的代码更简单易读:

http://jsfiddle.net/NpK3K/24/

问题在于您将对象放入"FacebookContacts"属性而不是数组。因此,您应该在第一个位置使用"with"绑定扩展来更改root元素的datacontext。

希望它有所帮助。