2016-11-10 3 views
0

EDIT Я искал что-то вроде this. В сочетании с предложениями по этому сообщению я теперь использую привязку в сочетании с выражением.AngularJS Passing Scope via Data Binding

<my-component data="{{data}}">{{data}}</my-component> 

Можно ли передать объем контроллера через привязку данных? Мой контроллер обработки должен получить объем, как это:

bindings: { 
    scope: '<' 
} 

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

<my-component>{{scope.data}}</my-component> 
+0

Я не уверен, что вы точно хотите сделать, b ut, если я правильно понял, вы хотите отправить данные между двумя контроллерами, не так ли? – trichetriche

+0

Если вы используете общие универсальные данные, он должен находиться в * службе *, которая является синглом, указывающей на одно и то же состояние данных в контексте приложения. При правильном архивированном коде контроллеры не работают с данными «обслуживания» друг с другом. После того, как у вас есть услуга, вы просто вводите ее в любой клиентский контроллер, который нуждается в доступе к * тем же * данным. – MoMo

ответ

1

Почему вы хотите передать весь объем контроллера?

Обычно вы бы пройти через объект к компоненту из первого контроллера с чем-то, как показано ниже:

bindings: { 
     someVariable: '=' 
} 

А потом в HTML контроллера вы могли бы назвать компонент:

<my-component some-variable="scope.someVariable"></my-component> 

scope.someVariable будет объектом, который принадлежит первому контроллеру, и теперь у вас есть доступ к этим данным внутри вашего компонента