Javascript 敲除障碍物未绑定
我的Drundal SPA应用程序(flick.js)中有上述代码,我的(flick.html)有以下代码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:/
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();
}),