ng-options を使用した選択ドロップダウンを表す AngularJS 1.5 コンポーネントがあります。具体的には、コンポーネントにバインドされ、親コントローラーから取得される name プロパティの値に応じて、これらの ng-options が (定数ファイルからの) さまざまなデータで動的に埋められることです。
たとえば、私のコンポーネントは次のようになります。
test.component.js
angular
.module('test.component')
.component('Selector', {
controller: Selector,
controllerAs: 'vm',
templateUrl: 'selector.html',
bindings: {
model: '=',
form: '<',
name:'@',
label:'@',
constant: '<',
}
});
function Selector(CONSTANTS, SOME_OTHER_CONSTANTS) {
var vm = this;
switch(vm.name) {
case 'Name1':
vm.constant = CONSTANTS;
break;
case 'Name2' :
vm.constant = SOME_OTHER_CONSTANTS;
break;
}
}
したがって、親コントローラーのビューでは、次のようになります
。parent-view.html
<selector
name="Name1"
form="vm.myForm"
model="vm.myModel>
</selector>
name
正常に動作しますが、主にフォームの検証に使用されるため、プロパティを介して親コントローラーとデータを区別することはお勧めできません。親コントローラーを区別して、それに応じて異なるデータを ng-options に入力できるようにするためには、何を使用するのが良いでしょうか?
どんな助けや提案も大歓迎です。