2013-08-22 3 views
0

Я пытаюсь связать массив данных в шаблон нокаута, но когда я пытаюсь связать его я получаюНокаут цикл Ajax Еогеасп не работает

Uncaught ReferenceError: Unable to parse bindings. 
Bindings value: foreach: attributes 
Message: attributes is not defined 

Ниже Ajax вызова я буду использовать для того, чтобы вернуть мои данные. Я заменил self.attributes ожидаемыми данными, которые нужно вернуть, чтобы проверить его в jsfiddle.

$.ajax({ 
    url: '/api/MyApi', 
    type: 'GET', 
    dataType: 'json', 
    data: { 
     DamageId: urlCat 
    }, 
    success: 
      function (data) { 
       ko.applyBindings(new DetailViewModel(currentDamage, fakeHistData, data)); 

      }, 
    error: function() { 
    } 
}); 


function DetailViewModel(data, damHist,attrs) { 
var self = this; 
self.details = data; 
self.attributes = '{[{"Id": 258,"Value": "Yes","AttributeId": 195,"AttributeName": "FurtherDamage","AttributeText": "Is the condition causing further damage to the property?"},{"Id": 259,"Value": "Zombie Attack","AttributeId": 196,"AttributeName": "Description","AttributeText": "Enter a description for the damage"}]}' 
self.damHistory = ko.observableArray(damHist); 
} 

вот мой HTML

<div class="itemAttributesContainer topBorder"> 
    <h4>Attributes</h4> 
    <table id="attributeTable" data-bind="foreach: attributes"> 
     <tr> 
      <td> 
       <span class="attrQuestion" data-bind="text: AttributeText + ': '" /> 
       <span data-bind="text: Value" /> 
      </td> 
     </tr> 
    </table> 
</div> 

http://jsfiddle.net/2Tp4E/

+0

Там нет 'Еогеасп: attributes' в вашей скрипке, ни в вашем вопросе! Пожалуйста, обновите свой вопрос о своем фактическом коде, который вызывает проблему! – nemesv

+0

извините, извините, теперь исправлено – EntryLevel

+0

Ваша скрипка не является правильной. Я не вижу никаких 'jquery frameqork.js' или' knockout.js'. Исправьте его, дайте правильные внешние ресурсы. –

ответ

0

Вашей скрипка не работает в любом случае, пожалуйста, проверьте, добавив этот код. Для этого вам нужен плагин для отображения нокаутов.

Html: 

    <table id="attributeTable" data-bind="foreach: attributes"> 
      <tr> 
       <td> 
        <span data-bind="text: AttributeText() + ': '" /> 
        <span data-bind="text: Value()" /> 
       </td> 
      </tr> 
     </table> 

вид Модель:

self.attributes = ko.mapping.fromJSON('[{"Id": 258,"Value": "Yes","AttributeId": 195,"AttributeName": "FurtherDamage","AttributeText": "Is the condition causing further damage to the property?"},{"Id": 259,"Value": "Zombie Attack","AttributeId": 196,"AttributeName": "Description","AttributeText": "Enter a description for the damage"}]') 
+0

Я обновил jsfiddle в соответствии с оставленными комментариями. Мне не нужна ссылка на jquery, которая переопределяется путем установки моего массива в строку моего ответа, вызов только там, чтобы дать некоторый контекст – EntryLevel

+0

, который вы не понимаете выше @Tim B James, "/ api/MyApi" не доступен на jsfiddle, это не ваш проект api! вы можете поместить файл data.json в ресурсы и вызвать это в ajax-запросе. –

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