2016-12-24 2 views
2

Я очень новичок в knockout.js (только вчера поднял его), но мне предложили его для того, что я пытаюсь сделать.ObservableArray работает не так, как ожидалось.

Моя дилемма заключается в следующем:

  • я установил следующее "initialData" как массив JSon:

    var initialData = [ 
    { 
        id: 0, 
        pcName: "Test1" 
    }, 
    { 
        id: 1, 
        pcName: "Test2" 
    }, 
    { 
        id: 2, 
        pcName: "Test3" 
    }, 
    { 
        id: 3, 
        pcName: "Test4" 
    }, 
    { 
        id: 4, 
        pcName: "Test5" 
    } 
    ]; 
    
  • следуют следующим (простой) модели:

    var PCModel = function (pcs) { 
    var self = this; 
    
    self.pcsList = ko.observableArray(ko.utils.arrayMap(pcs, function (pc) { 
        return { id: pc.id, pcName: pc.pcName }; 
    })); 
    
  • и примените мои крепления как таковые:

    ko.applyBindings(new PCModel(initialData)); 
    
  • я затем попытаться перебрать мой (что должно быть) pcsList:

    <ul class="nav nav-tabs" id="sortable" data-bind="foreach: pcsList"> 
    
        <li> 
         <a data-bind="attr: {href: '#' + id}, text: pcName"></a> 
        </li> 
    </ul> 
    

И все же, ничего не кажется, происходит. Кажется, я не понимаю, почему.

Пожалуйста, помогите.

+0

У вас есть только синтаксические ошибки. Кроме того, см. Https://jsfiddle.net/fwekz6mt/ – haim770

+0

Ну. Кажется, ты прав. –

+0

Не могли бы вы указать на синтаксическую ошибку? Я нахожусь на своем телефоне, и мне нужно перевернуть назад и вперед, чтобы проверить код, и я схожу с ума, глядя на скрипку и на мой вопрос. Также не стесняйтесь публиковать это как ответ, в конце концов, вы ответили на вопрос. –

ответ

2

Для тех, кто может споткнуться здесь, моя проблема просто не была вызвана applyBindings ПОСЛЕ того, как документ был готов. обертывая его в $("document").ready(..., решила проблему.

Смежные вопросы