I created directive form controls (tesxt, select, radio). In directive I am passing a value that I want access in directive function and if this value is not set or empty then set default value from question (data._pageAttributes.defaultValue)
http://plnkr.co/edit/Op1QDwUBECAosPUC7r3N?p=preview facing two problems 1. Not able to access data inside link function in directive 2. not able to set selected value for input and selected control directives. HTML <div ng-repeat="que in questions[$state.current.name]"> <div ng-if="que.QuestionData._fieldType === 'text'" > <!-- {{answers[que.QuestionData._attributeName]}} --> <text-control-dir data="que.QuestionData" default="94403"></text-control-dir> </div> <div ng-if="que.QuestionData._fieldType === 'select'" > <select-control-dir data="que.QuestionData" default="2016"></select-control-dir> </div> <div ng-if="que.QuestionData._fieldType === 'radio'" > <radio-control-dir data="que.QuestionData"></radio-control-dir> </div> <div ng-if="que.QuestionData._fieldType === 'hidden' && que.QuestionData._attributeName != 'CBQ'" > <hidden-control-dir data="que.QuestionData"></hidden-control-dir> </div> </div> controlDirective.js (function () { "use strict"; angular .module("autoQuote") .directive('textControlDir', [textControlDir]) .directive('selectControlDir', [selectControlDir]) .directive('radioControlDir', [radioControlDir]) .directive('hiddenControlDir', [hiddenControlDir]); function textControlDir() { return { transclude: true, restrict: 'E', scope: { data: '=data', default: '=default' }, template: "<div ng-transclude></div><label>{{data._text}} </label><input ng-model='answer.PC' type='text' name='{{data._attributeName}}' id='{{data._attributeName}}' value='' >" , link: function (scope, element, attrs) { console.log('default'); console.log(attrs.default); if(attrs.default == '') { attrs.default = data._pageAttributes.defaultValue; } } }; } function selectControlDir() { return { transclude: true, restrict: 'E', scope: { data: '=data' }, template: "<div ng-transclude></div><label>{{data._text}} </label><select type='text' name='{{data._attributeName}}' id='{{data._attributeName}}' >\n\ <option ng-repeat='ans in data._answerOptions'>{{ans._promptText}}</option></select>" , link: function (scope, element, attrs) { //console.log("scope.data.QuestionData", scope.data.QuestionData); } }; } function radioControlDir() { return { transclude: true, restrict: 'E', scope: { data: '=data' }, template: "<div ng-transclude></div><label>{{data._text}} </label><input type='radio' name='{{data._attributeName}}' id='{{data._attributeName}}' value='Yes' >\n\ \n\ <input type='radio' name='{{data._attributeName}}' id='{{data._attributeName}}' value='No' >\n\ " , link: function (scope, element, attrs) { //console.log("scope.data.QuestionData", scope.data.QuestionData); } }; } function hiddenControlDir() { return { transclude: true, restrict: 'E', scope: { data: '=data' }, template: "<div ng-transclude></div><label>{{data._text}} </label><input type='hidden' name='{{data._attributeName}}' id='{{data._attributeName}}' value='' >" , link: function (scope, element, attrs) { //console.log(scope.data); } }; } }()); -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
