我创建了一个自定义指令,该指令使用国家列表自动填充选择。该指令有一个预选隔离范围属性,如果设置为 true 将预选一个国家。
ng-model
也作为隔离范围属性传递问题是ng-model
不会被设置。
谁能给我一些关于如何制定<auto-countries>
指令以便我能够设置的指示ng-model
?
这是我的指令代码:
app.directive('autoCountries', function() {
return {
restict: 'E',
controller: 'CountriesCtrl as ctrl',
scope: {
preselect: '=',
ngModel: '='
},
template: [
'<select ng-if="!preselect" ng-model="ngModel">',
'<option value="">Select Country</option>',
'<option ng-repeat="country in ctrl.countries" value={{country.name}}>',
'{{country.name}}',
'</option>',
'</select>',
'<select ng-if="preselect" ng-model="ngModel">',
'<option ng-repeat="country in ctrl.countries" ng-selected="ctrl.countryFromIP == country.name" value={{country.name}}>',
'{{country.name}}',
'</option>',
'</select>',
].join('')
}
})
更奇怪的是,在完全不使用预选的指令的更简单版本ng-model
中,将设置。
没有例子有点难以理解,所以这里有一个 Plunkr! http://plnkr.co/edit/e1HPgGQlne7Q4TcNJ9XT?p=preview