I am attempting to learn a little more about AngularJS' directives and have run into this situation. I would like to make a yes-no radio control that I can reuse. I have gotten most of the way - I think - but need a little push in the right direction.
I have this directive:
app .directive('yesno', function () { 'use strict'; var config; config = { replace: true, require: 'ngModel', restrict: 'E', scope: { field: '=', model: '=' }, templateUrl: 'views/yesno.html' }; return config; });
...and the template looks like this:
<fieldset class="yesno"> <input id="{{field}}-yes" name="{{field}}" ng-model="model" type="radio" value="yes" /> <label for="{{field}}-yes">Yes</label> <input id="{{field}}-no" name="{{field}}" ng-model="model" type="radio" value="no" /> <label for="{{field}}-no">No</label> </fieldset>
...and I am using it like this (simplified):
<form name="person"> <yesno field="'happy'" model="happy" /> </form>
Unfortunately what I am getting in the person
object is a property {{field}}
instead of happy
like I would like. I keep telling myself that something like what I am attempting is possible and I just need to find it; but what.
Help please.
Update
Thank you, @HackedByChinese that helped a little but still not quite there. The problem is that I do want two way binding so that the value of the radios is populated into the parent scope; instead, when I inspect the person
object it has a {{field}}
property and not a happy
property.
I am thinking that this is just something that AngularJS does not support in looking at:
AngularJS: Fields added dynamically are not registered on FormController
...and: