You can create state/country dropdown list as common controls to make use of them as global controls instead of re-creating for each controller. http://plnkr.co/edit/V5ub3CBRMlQcjGMs2Px2?p=preview Ref: http://stackoverflow.com/questions/18459681/how-add-options-to-a-select-with-an-angularjs-directive For Two-way binding working from/to directive, need to use controller in directive instead of link function. Fiddle - https://jsfiddle.net/vpavulu/h2ng6wdw Another way to make 2-way binding to work with Button & Unordered list as dropdown list - http://plnkr.co/edit/mIKHqMixUALMR8DA18Vh