2016-08-22 4 views
1

Я хочу передать массив компоненту в угловом 1, но я не в контроллере (и не хочу создавать однокомпонентный подход). Я начинаю с:Пропустить массив к компоненту в Угловом без контроллера

<user-list users="users"></user-list> 

Где пользователи - массив JS. Конечно, это не сработает, но как это сделать?

+1

это директива. Вы должны посмотреть это: https://docs.angularjs.org/guide/directive – gianlucatursi

+0

, если вы не хотите напрямую использовать директиву контроллера, вы можете обернуть компонент в другой компонент – Grundy

+0

Это может быть директива * или * компонент. Если это директива, вы добавляете 'users' в определение' scope' директивы и становится доступным в '$ scope.yourkey'. Если это компонент, вы добавляете его в 'bindings', и он (по умолчанию) становится доступным в' $ ctrl.yourkey'. –

ответ

0

Хорошо, я решил создать специальный «прокси-компонент» nt ", чтобы иметь возможность передавать переменные области.

0

Это может быть легко достигнуто с помощью директивы в angularjs

agular.module('app').directive('usersList', function() { 
    return { 
     restrict : 'E', 
     transclude : false, 
     scope : { 
      users : '@' 
     }, 
    } 
}; 

В template.html

<div ng-repeat="user in users> 
     {{ user.firstName }} {{user.lastName }} 
</div> 

В главном приложении HTML вы просто добавить директиву

<p> 
    Some html 
</p> 
<users-list users="users"></users-list> 
+0

К сожалению, «пользователи» не определены в директиве. – krojew

+0

измените значение '@' на '=', это приведет к привязке к переменной. –

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