трогании от «Как создать директивы, которые обмениваются данными» из angularJS руководства, https://docs.angularjs.org/guide/directive,
Я пытаюсь используйте этот макет, чтобы сделать судоходную форму.
Проблема заключается в том, что директивы изолировать их имена, поэтому, когда я хочу, чтобы ссылаться на основную области для вставки данных из входов, мне нужно сделать это:
<div id="showfoo">Foo = {{foo}}</div>
<form-tabs>
<form-tab>
<input ng-model="$parent.$parent.$parent.$parent.foo" />
</form-tab>
<form-tab>
<input ng-model="$parent.$parent.$parent.$parent.foo" />
</form-tab>
<form-tab>
<input ng-model="$parent.$parent.$parent.$parent.foo" />
</form-tab>
</form-tabs>
Это понятно, так как ребенок область создается для каждой трансклюзии и каждой области выделения, поэтому в итоге создается вложенность 4.
Вопрос в том, как этого избежать? В идеале я хотел бы сделать <input ng-model="foo">
, и обновить его div#showfoo
См. http://plnkr.co/edit/jgD7a6W53518qpyLNUcx?p=preview для получения полного кода.
Насколько я понял это, сближая связанные статьи, для этого все еще требуется указать, какие переменные я хочу связывать - чего-то, чего я хочу избежать, чтобы создать директиву многократного использования. Я здесь не прав? –
Проблема не в использовании точки в ng-модели. Также необходимо было создать объект в контроллере, чтобы пропустить его, даже если он полностью пуст. –
Извините - я не следовал. Идея во второй статье состоит в том, чтобы иметь как привязку, так и не изолировать область действия, что было невозможно до 1.4. Первый из них был потому, что я видел что-то, что смотрело, и я хотел предупредить вас :) – PiniH