Новый для Углового, поэтому не уверен, правильно ли я задал свой вопрос.
Итак, у меня есть форма.
<form ng-controller="myController" action="" method="get">
<div myDirective>
<input ng-model="question.sex" value="male" type="radio">
<input ng-model="question.sex" value="female" type="radio">
<button ng-click="log(LogThisQuestionAnsware())"></button>
</div>
<div myDirective>
<input ng-model="question.agree" value="no" type="radio">
<input ng-model="question.agree" value="yes" type="radio">\
<button ng-click="log(LogThisQuestionAnsware())"></button>
</div>
</form>
Поэтому моя цель - зарегистрировать текущий ответ "вопрос". при нажатии кнопки.
Как я могу получить доступ к локальному вопросу в myDirective отдельно от моей второй директивы и иметь в области управления тоже.
--[ Редактировать: ]--
Хорошо, это мой сценарий. http://jsfiddle.net/y5esnm09/5 Каждая кнопка должна самостоятельно регистрировать собственное значение директивы, а не оба значения радио, если они выбраны.
Если я правильно понял ваш вопрос, вы хотите, чтобы оба экземпляра директивы привязывались к одному и тому же объекту вопроса, но их области были отделены друг от друга:
Настройте двустороннюю привязку данных между вашей директивой и вашим контроллером, например:
<div my-directive question="question">
<!-- the rest -->
angular.module('your.module').directive('myDirective', function() {
return {
scope: question: '=',
//other props
}
Это гарантирует, что обе директивы привязаны к одному объекту вопроса, но имеют свои собственные отдельные области.
Альтернативой было бы установить свойство scope
равным true
, таким образом они будут создавать дочернюю область вашего контроллера.
EDIT: скрипка, демонстрирующая двустороннюю привязку:
PS: Я преобразовал myDirective
в my-directive
, угловой переведет змеиный футляр на camelCase для вас.