2015-08-02 6 views
0

Я пытаюсь передать массив объектов JSON в свою директиву, а затем повторить их с помощью ngrepeat, однако он не работает, и непонятно, почему.ngrepeat не работает при передаче массива JSON в угловую директиву

Я создал jsfiddle, который показывает проблему, которую я испытываю.

https://jsfiddle.net/HB7LU/15997/

в состоянии сказать мне, что я делаю не так ли кто-нибудь? Я не понимаю, почему это не позволит мне это сделать.

var myApp = angular.module('myApp',[]); 

myApp.directive('dir', function() { 
    return { 
     restrict: 'E', 
     scope:{ 
      items: '@' 
     }, 
     replace: true, 
     template: '<div><h6>descriptions below</h6><div ngrepeat="x in items"><p>{{x.desc}}</p></div></div>', 
     link :function(scope){ 
      console.log(scope.items); 
     } 
    }; 
}); 

ответ

1

Во-первых, у вас есть опечатка в вашем шаблоне. Его ng-repeat, а не ngrepeat - обратите внимание на «-».

Во-вторых, вы определили свой объем с помощью свойства @. Это приводит к передаче данных, которые вы передаете, в форме строки, а не исходного типа.

У вас здесь есть два выбора. Либо проанализируйте строку до ее исходного типа, используя JSON.parse(), либо используйте тип свойства =, который передает данные в область в исходном формате.

Working Fiddle

+0

Благодарю вас ngrepeat была ошибка, которая возникала в моем РОС переписывание спасибо большое изменение @, который я думал, что только означало только для чтения, чтобы ап = был ответ. – Jamesla