Javascript 敲除障碍物未绑定

Javascript 敲除障碍物未绑定,javascript,knockout.js,durandal,Javascript,Knockout.js,Durandal,我的Drundal SPA应用程序(flick.js)中有上述代码,我的(flick.html)有以下代码 define(['plugins/http', 'durandal/app', 'knockout'], function (http, app, ko) { return { displayName: 'Flickr', Value: ko.observableArray([]), js : $.getJSON("http:/

我的Drundal SPA应用程序(flick.js)中有上述代码,我的(flick.html)有以下代码

define(['plugins/http', 'durandal/app', 'knockout'], function (http, app, ko) {

    return {
        displayName: 'Flickr',

        Value: ko.observableArray([]),

        js : $.getJSON("http://localhost:XXXXX/api/File/Get", function (result) {

            self = this;
            self.Value = result;
            console.log(JSON.stringify(self.Value));
//[{"ID":1,"Name":"a","Type":"text","Size":123},{"ID":1,"Name":"a","Type":"text","Size":123},{"ID":1,"Name":"a","Type":"text","Size":123}]

        }),
但是当我执行这段代码时,我并没有在我的html文件中得到名称列表

出了什么问题
谁能帮我一下吗你这里有两个问题。第一个-将值赋给
observatarray
不正确,
observatarray
是一个函数,因此必须使用
()
将值赋给它。第二,你在自我中有错误的语境。将self的初始化移动到
js
函数的顶部:

<ul class="thumbnails" data-bind="foreach: Value">
            <li data-bind=" text: Name ">

            </li>
        </ul>

您必须设置可观察的值,而不是重新创建它。 您还可以创建一个保存“self”引用的对象

define(['plugins/http', 'durandal/app', 'knockout'], function (http, app, ko) {

    return {
        displayName: 'Flickr',

        Value: ko.observableArray([]),

        js : function() {
              var self = this;
              $.getJSON("http://localhost:XXXXX/api/File/Get", function (result) {

                  self.Value(result);
                 console.log(JSON.stringify(self.Value()));
              })
        }}

我希望它能有所帮助。

显示定义
self
并调用
applyBindings
@haim770的代码我可以在屏幕上看到显示名称:“Flickr”,但不是名称它甚至不在Fontion JS中,我在控制台中获得导航完整的[object object][object]bindingview/Flickr object object]
define(['plugins/http', 'durandal/app', 'knockout'], function (http, app, ko) {
    var VM = function () {
        self = this;
        self.displayName = 'Flickr';
        self.Value = ko.observableArray([]);
        self.js = $.getJSON("http://localhost:XXXXX/api/File/Get", function (result) {
            self.Value(result);
        });
    };
    return new VM();
}),