У меня проблема с durandal/knockout/sammy - не уверен, какой из них является виновником. Иногда мои var roots = ko.observableArray ([]); не привязывается к пользовательскому интерфейсу. Большую часть времени он работает отлично. Надеюсь, кто-то на SO видит то, чего я не знаю.Нокаут наблюдаемый массив случайным образом не связывает
В.М. Активация:
var activate = function() {
groupsData.GetRoots().then(function (data) {
roots($.map(data, function (it) { return new groupNode.GroupNode(it); }));
//If I do a console.log(roots()); right here, the correct data shows up
});
};
DataContext:
var getRoots = function() {
return Q.when($.getJSON(Url));
};
Мое мнение: Если я ударил обновить снова и снова, промежуток с «длиной» в нем будет показывать правильную длину MOST ВРЕМЕНИ. Иногда это будет 0, и пользовательский интерфейс внутри foreach не будет отображаться.
<span data-bind="text: roots().length"></span>
<ul data-bind="foreach: roots">
//BLA
</ul>