无法解析绑定,未定义Url;

时间:2014-02-09 10:55:01

标签: javascript knockout.js knockout-2.0

我正在学习Knockout的新手。我试图使用Ko.Computed返回图片网址,我的图片存储在

中 root上的

图片 文件夹。

。在加载页面上我得到以下错误:

  

错误:无法解析绑定。

     

消息:ReferenceError:Url是

     

未定义;绑定值:text:Url

我的代码如下:

<script>
        $(function () {
            // Model
            var Model = {
                id: "1",
                path: "/Images/"

            };

            // ViewModel
            var ViewModel = function () {
                var self = this;
                self.Id = ko.observable(Model.id);
                self.path = ko.observable(Model.path);
                self.Url = ko.computed(function () {
                    return self.path+ self.Id+".jpg";
                });
                // etc...
            };

            ko.applyBindings(ViewModel);



        }); 
    </script>

我的HTML标记是:

<img data-bind="attr:{src:Url}" />
<span data-bind="text:Url"></span>

<span>Photo Id:</span>
<input data-bind="value:Id" type="text" />

1 个答案:

答案 0 :(得分:2)

这样做:

self.Url = ko.computed(function () {
    return self.path() + self.Id() + ".jpg";
});

由于pathId是可观察的,因此您应该调用它们来获取值

编辑:您还应该在应用绑定之前创建对象@ haim770建议

ko.applyBindings(new ViewModel());